SQL Server - 为所有现有和未来数据库的读访问权限提供登录权限

Gre*_*reg 7 sql sql-server security roles sql-server-2008

我有一个存储过程,可以找到所有现有数据库,并从每个数据库的表中读取.

有没有办法可以对所有数据库和所有未来的数据库进行登录读取访问,即添加新数据库时我不需要做任何事情?

是否有可用的服务器角色?有没有办法让SQL代理作业在任何新数据库上添加权限?还是有其他方法吗?

gbn*_*gbn 9

对于新数据库,请在model数据库中添加用户.这用作所有新数据库的模板.

USE model
CREATE USER ... FROM LOGIN...
EXEC sp_addrolemember 'db_datareader', '...'
Run Code Online (Sandbox Code Playgroud)

对于现有数据库,请使用sp_MSForEachDb

EXEC sp_MSForEachDb '
 USE ?
 CREATE USER ... FROM LOGIN...  
 EXEC sp_addrolemember ''db_datareader'', ''...''
'
Run Code Online (Sandbox Code Playgroud)