大家好我想添加执行权限的多个对象的用户。 但我似乎无法通配符添加到我的代码。
GRANT EXECUTE ON OBJECT::dbo.CREATESERVERSESSIONS TO [domain\user];
这个工作,但我有很多与XU_从现在开始我要授予执行上与XU_启动所有存储过程的存储过程
GRANT EXECUTE ON OBJECT::dbo.XU_* TO [domain\user];
但不工作。 我希望有人知道解决这个。 提前致谢。
大家好我想添加执行权限的多个对象的用户。 但我似乎无法通配符添加到我的代码。
GRANT EXECUTE ON OBJECT::dbo.CREATESERVERSESSIONS TO [domain\user];
这个工作,但我有很多与XU_从现在开始我要授予执行上与XU_启动所有存储过程的存储过程
GRANT EXECUTE ON OBJECT::dbo.XU_* TO [domain\user];
但不工作。 我希望有人知道解决这个。 提前致谢。
不能使用通配符-你要授予任的所有对象(或在架构中的所有对象) -或者,那么你必须列出所有的对象一个接一个。
你可能做的就是这样的事情 - 有SQL服务器生成的报表为您提供:
SELECT
p.Name,
GrantCmd = 'GRANT EXECUTE ON OBJECT::' + p.name + ' TO [domain\user]'
FROM sys.procedures p
WHERE p.Name LIKE 'XU%'
此查询将列出以启动所有程序XU
和创建包含一列GRANT EXECUTE ON ....
语句该过程。
在SQL Server Management Studio中运行它,然后只复制导致GrantCmd
列,将其粘贴到一个新的窗口,并执行它。
如果你真的想自动化这个,你也可以把这个查询到一个光标,然后使用动态SQL来自动执行这些导致GrantCmd
报表....