在SQL Server中将权限从一个域传输到另一个域

时间:2010-02-25 15:51:52

标签: sql sql-server

在我们的大多数存储过程的底部,我们有一个类似于

的授权
GRANT EXECUTE ON [dbo].[uspFOO] TO [DOMAIN\SQLServerUsers]

幸运的是对我而言,我们的域名正在发生变化,我们现在需要通过并更改权限。有没有人知道使用数据库元数据执行此操作的简单方法,因此我可以提取[DOMAIN \ SQLServerUsers]被授予运行权限的所有位置并用[DOMAIN2 \ SQLServerUsers]替换它?

感谢。

对于那些询问,这是在SQL Server 2005上。

1 个答案:

答案 0 :(得分:1)

您使用的是什么版本的SQL Server?

2005年及以后,你可以

  • 创建一个新的数据库角色“db_executor”并执行

    GRANT EXECUTE TO db_executor
    
  • 将该数据库角色授予所有必要用户

这将创建一个“catch all”角色,该角色对数据库中的每个现有和future(!!)存储过程具有执行权限。是的,这确实包括未来的存储过程!非常方便(至少只要允许每个用户执行所有存储的过程)

这样,您就不必为每个存储过程创建单独的GRANT EXECUTE语句.......