一种方法是在SSMS的查询菜单上设置“结果为文本”,然后执行以下操作。
它实际上并没有进行更改,而是生成了一个脚本供您查看和执行。
SET NOCOUNT ON;DECLARE @user_name SYSNAME , @login_name SYSNAME;SELECt @user_name = 'user_name', @login_name = 'login_name'SELECT ' USE ' + QUOTENAME(NAME) + '; CREATE USER ' + QUOTENAME(@user_name) + ' FOR LOGIN ' + QUOTENAME(@login_name) + ' WITH DEFAULT_SCHEMA=[dbo]; EXEC sys.sp_addrolemember ''db_datareader'', ''' + QUOTENAME(@user_name) + '''; EXEC sys.sp_addrolemember ''db_denydatawriter'', ''' + QUOTENAME(@user_name) + ''';GO'FROM sys.databasesWHERe database_id > 4 AND state_desc = 'ONLINE'
或者,你可以看看
sys.sp_MSforeachdb这里或亚伦Bertrand的改进版本在这里
如果运行此命令时未看到所有字符,请打开“文本查询选项”,然后检查“每列中显示的最大字符数”设置。确保将其设置为足够大的值以显示所有字符。



