我有一个可以读写的用户,但现在他需要能够创建/更改存储过程,但给他 ddl_admin 会使其变得太不安全。我不太信任他。
我该怎么办?我能否以某种方式授予他仅在一种架构中更改存储过程的权限(我将创建一个供他自己使用的架构)?
答案1
SQL Server 2005+ 具有更细粒度的权限
GRANT CREATE PROCEDURE TO MyRoleorUser
GRANT ALTER ON SCHEMA:TheSchemaName TO MyRoleorUser
“ddl_admin” 只是这些新权限的遗留包装器
从创建过程在 MSDN 中
需要在数据库中拥有 CREATE PROCEDURE 权限,并在创建该过程的架构上拥有 ALTER 权限。
编辑:
如果你的架构仅适用于存储过程,那么你应该没问题,不会产生任何副作用,例如更改权限或创建表的能力