我在MSSQL 2008 Server中有100个数据库。 我需要创build一个只读用户来读取所有这些数据库。 是否有一个服务器广泛的作用: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 '
EXEC sp_MSForEachDB 'USE ? IF DBID() >= 5 EXEC sp_addrolemember ''db_datareader'', ''MyUser'' '