存储过程中GRANT,REVOKE或DENY的特定权限

时间:2009-03-27 14:48:34

标签: sql-server permissions

在SQL Server 2008数据库上,我想为用户授予仅对类型存储过程的对象(不使用db_securityadmin数据库角色)的GRANT,REVOKE和DENY的权限。我怎样才能做到这一点?谢谢!

桑多尔

2 个答案:

答案 0 :(得分:3)

通过另一个存储过程包裹GRANT / REVOKE / DENY:

  • 具有EXECUTE AS OWNER(或用户,如果是不同的架构)以避免用户的直接权利
  • 检查存储过程中的目标对象
  • 检查允许用户或某个角色的成员等

否则,无法为每个对象类型分隔权限

答案 1 :(得分:1)

最简单的方法可能是将存储过程分组到一个单独的模式中,并为该模式提供所需的用户CONTROL权限。

可能有其他方法可以达到你想要的效果,但我并不知道它们。