在 SQL Server 2008 R2 中授予读取所有权限的最佳方法?

Kyl*_*ndt 6 sql-server-2008-r2

向用户(在本例中为 AD 组)授予对所有当前和未来数据库的读取访问权限的最佳方法是什么?

目前我有一个不稳定的预定作业,它使用(将开始调试以下内容,但也许我做错了):

sp_msforeachdb '
USE [?]
CREATE USER [MY_DOMAIN\SQL-READ-ALL] FOR LOGIN [MY_DOMAIN\SQL-READ-ALL]
USE [?]
EXEC sp_addrolemember N''db_datareader'', N''MY_DOMAIN\SQL-READ-ALL''
'
Run Code Online (Sandbox Code Playgroud)

也许有更好的方法?

gbn*_*gbn 10

对于未来的数据库,请这样做,因为所有数据库都是从model

USE model
EXEC sp_addrolemember N'db_datareader', N'MY_DOMAIN\SQL-READ-ALL'
Run Code Online (Sandbox Code Playgroud)

对于现有数据库,只需运行上面的内容,一次

  • 也许在恢复脚本中添加一些东西将是这种情况下最明智的事情...... (5认同)
  • @Kyle Brandt:正确,他们不会。除非你的恢复来自一个已经在同一个域中的盒子 (3认同)