MSSQL db_datareader 到所有数据库

sta*_*chx 2 users read-only sql-server sql-server-2008

我在 MSSQL 2008 Server 中有 100 个数据库。我需要创建一个只读用户来读取所有这些数据库。是否有服务器范围的角色:db_datareader 我可以将用户分配给,这样我就不需要通过每个数据库来添加用户映射。

谢谢,蒂姆

它可能对谁有帮助,这是我的最终脚本:

 --You will need Server Level's Login user123 created first.
 -- >=7 filtered out the system database, use this to find out your number
 -- EXEC sp_MSForEachDB 'use ? SELECT DB_ID(), DB_NAME()'
 EXEC sp_MSForEachDB
   'USE ?
    IF DB_ID() >= 7 
    BEGIN
       CREATE USER user123 FOR LOGIN user123
       EXEC sp_addrolemember db_datareader, user123
    END
   '
Run Code Online (Sandbox Code Playgroud)

gbn*_*gbn 6

EXEC sp_MSForEachDB
  'USE ?
   IF DBID() >= 5 EXEC sp_addrolemember ''db_datareader'', ''MyUser'' '
Run Code Online (Sandbox Code Playgroud)