【发布时间】:2011-07-26 02:34:31
【问题描述】:
我正在寻找一种方法让数据库用户只有权执行存储过程和函数。这需要是一个动态设置,以便每次我添加存储过程或函数时,他们都有权访问它。
约束 我无法更改架构或存储过程或函数的名称。
【问题讨论】:
标签: sql sql-server
我正在寻找一种方法让数据库用户只有权执行存储过程和函数。这需要是一个动态设置,以便每次我添加存储过程或函数时,他们都有权访问它。
约束 我无法更改架构或存储过程或函数的名称。
【问题讨论】:
标签: sql sql-server
在 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
然而,这让管理成为一场噩梦 - 所以我不会走这条路..
【讨论】: