SQL 2008. 如何让用户仅在一个特定模式中创建/更改存储过程?

SQL 2008. 如何让用户仅在一个特定模式中创建/更改存储过程?

我有一个可以读写的用户,但现在他需要能够创建/更改存储过程,但给他 ddl_admin 会使其变得太不安全。我不太信任他。

我该怎么办?我能否以某种方式授予他仅在一种架构中更改存储过程的权限(我将创建一个供他自己使用的架构)?

答案1

SQL Server 2005+ 具有更细粒度的权限

GRANT CREATE PROCEDURE TO MyRoleorUser
GRANT ALTER ON SCHEMA:TheSchemaName TO MyRoleorUser

“ddl_admin” 只是这些新权限的遗留包装器

创建过程在 MSDN 中

需要在数据库中拥有 CREATE PROCEDURE 权限,并在创建该过程的架构上拥有 ALTER 权限。

编辑:

如果你的架构仅适用于存储过程,那么你应该没问题,不会产生任何副作用,例如更改权限或创建表的能力

相关内容