在我们的大多数存储过程的底部,我们有一个类似于
的授权GRANT EXECUTE ON [dbo].[uspFOO] TO [DOMAIN\SQLServerUsers]
幸运的是对我而言,我们的域名正在发生变化,我们现在需要通过并更改权限。有没有人知道使用数据库元数据执行此操作的简单方法,因此我可以提取[DOMAIN \ SQLServerUsers]被授予运行权限的所有位置并用[DOMAIN2 \ SQLServerUsers]替换它?
感谢。
对于那些询问,这是在SQL Server 2005上。
答案 0 :(得分:1)
您使用的是什么版本的SQL Server?
2005年及以后,你可以
创建一个新的数据库角色“db_executor”并执行
GRANT EXECUTE TO db_executor
将该数据库角色授予所有必要用户
这将创建一个“catch all”角色,该角色对数据库中的每个现有和future(!!)存储过程具有执行权限。是的,这确实包括未来的存储过程!非常方便(至少只要允许每个用户执行所有存储的过程)
这样,您就不必为每个存储过程创建单独的GRANT EXECUTE
语句.......