Jedním ze způsobů by bylo nastavit "Výsledky na text" v nabídce dotazu v SSMS a poté provést níže uvedené.
Ve skutečnosti neprovede změnu, ale vygeneruje skript, který můžete zkontrolovat a spustit.
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'
Nebo se můžete podívat na sys.sp_MSforeachdb
jako zde nebo vylepšená verze Aarona Bertranda zde
Pokud se vám při spuštění nezobrazují všechny znaky, otevřete Možnosti dotazu pro text a zkontrolujte nastavení „Maximální počet znaků zobrazených v každém sloupci“. Ujistěte se, že je nastavena na dostatečně velkou hodnotu, aby se zobrazily všechny znaky.