SQL Server:哪个角色授予执行所有存储过程的权限?

Hik*_*ari 13 security sql-server permissions sql-server-2012

哪个数据库角色成员资格授予在 SQL Server 2012 中执行所有现有存储过程的权限?

我尝试为每个用户添加一个用户,但仍然无法执行存储过程。我不想EXECUTE单独授予每个存储过程,我想将用户添加到角色并且他能够执行其中的任何一个。

小智 16

如果您使用的是默认dbo架构以外的架构,请为每个架构创建一个数据库角色,并将EXECUTE该架构授予该角色。

例如对于默认dbo架构:

CREATE ROLE role_exec_dbo
GO
GRANT EXECUTE ON SCHEMA::dbo to role_exec_dbo
GO
Run Code Online (Sandbox Code Playgroud)

对于新模式:

CREATE SCHEMA mySchema
GO
CREATE ROLE role_exec_mySchema
GO
GRANT EXECUTE ON SCHEMA::mySchema to role_exec_mySchema
GO
Run Code Online (Sandbox Code Playgroud)

  • 然后`exec sp_addrolemember N'role_exec_mySchema', N'{theDBUserName}'`。:-) (3认同)
  • 将用户/成员添加到角色的首选方法是通过“ALTER ROLE Foo ADD MEMBER Bar”语句。`sp_addrolemember` 被标记为维护,将来可能会被删除。根据微软的文档。 (2认同)

Kev*_*3NF 5

默认无。

创建一个新角色并向其授予执行权限。这也应该涵盖将来创建的存储过程。

  • 系统管理员呢? (3认同)
  • ...和 ​​db_owner? (2认同)