【问题标题】:Grant only stored procedure rights for a user仅授予用户存储过程权限
【发布时间】:2011-07-26 02:34:31
【问题描述】:

我正在寻找一种方法让数据库用户只有权执行存储过程和函数。这需要是一个动态设置,以便每次我添加存储过程或函数时,他们都有权访问它。

约束 我无法更改架构或存储过程或函数的名称。

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    在 SQL Server 2005 及更高版本中,您可以创建新的数据库角色

    CREATE ROLE db_executor
    

    然后授予该角色执行权限 - 无需指定任何内容。

    GRANT EXECUTE TO db_executor
    

    这个角色现在可以执行数据库中的所有存储过程和函数 - 它也可以执行您添加到数据库中的任何未来存储过程!

    现在只需将此角色添加到您的用户即可完成:

    exec sp_addrolemember @rolename = 'db_executor', @membername = 'your-user-name-here' 
    

    PS:当然,您也可以只将此权限授予单个用户:

    GRANT EXECUTE TO your-user-name
    

    然而,这让管理成为一场噩梦 - 所以我不会走这条路..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多