gpt4 book ai didi

c# - 在 SQL Server 身份验证中执行存储过程所需的角色

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:57 29 4
gpt4 key购买 nike

我需要从 C# 应用程序连接到 SQL Server 2008 R2 数据库。我需要对连接使用 SQL Server 身份验证。

用户需要哪些角色和架构才能创建/执行存储过程?

注意:存储过程将在 dbo 架构中。

最佳答案

创建和执行过程的权限记录在 CREATE PROCEDURE 下和 EXECUTE , 分别。

一个重要的考虑因素是用户 do not need对过程中引用的对象具有权限。您可以在文档中阅读此内容,但自己测试它会更快:

create table dbo.TestTable (col1 int)
go

create procedure dbo.TestProc
as select col1 from dbo.TestTable
go

grant execute on dbo.TestProc to UserWithNoPermissions
go

execute as user = 'UserWithNoPermissions';

-- this gives error 229 (SELECT permission denied)
select * from dbo.TestTable;

-- this works
execute dbo.TestProc;

revert;

请注意,有一些异常(exception):动态 SQL 在其自己的范围内执行,因此如果您的过程使用它,那么执行用户确实需要对底层对象的权限。

关于c# - 在 SQL Server 身份验证中执行存储过程所需的角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142114/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com