有没有办法在所有数据库上授予用户相同的角色?服务器级角色仅向用户授予特定于服务器的选项。我想授予用户对服务器上所有数据库的只读访问权限
最佳答案
sp_MSforeachdb
可能会为你做的伎俩:
EXECUTE master.sys.sp_MSforeachdb '
use [?];
declare @user sysname = ''MyUserName''
if db_name() not in (''master'', ''model'', ''msdb'', ''tempdb'')
begin
if not exists (
select null
from dbo.sysusers
where name = @user
)
begin
print ''Adding '' + @user + '' to '' + db_name();
exec sp_grantdbaccess @user, @user;
end;
print ''Granting '' + @user + '' read access to '' + db_name();
exec sp_addrolemember db_datareader, @user;
end;
'
关于sql-server - 在所有数据库上授予相同的数据库角色 SQL Server 2008 R2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658149/