仅授予用户存储过程权限

时间:2011-07-25 18:19:50

标签: sql sql-server

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

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

1 个答案:

答案 0 :(得分:7)

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

CREATE ROLE db_executor

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

GRANT EXECUTE TO db_executor

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

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

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

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

GRANT EXECUTE TO your-user-name

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