Един от начините би бил да зададете „Резултати в текст“ в менюто за заявки в 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.databases
WHERE database_id > 4
AND state_desc = 'ONLINE'
Или можете да погледнете sys.sp_MSforeachdb
като тук или подобрената версия на Арън Бертран тук
Ако не виждате всички знаци, когато изпълнявате това, отворете Опциите на заявката за текст и проверете настройката за „Максимален брой знаци, показвани във всяка колона“. Уверете се, че това е зададено на достатъчно голяма стойност, за да покаже всички знаци.