Ett sätt skulle vara att ställa in "Resultat till text" på frågemenyn i SSMS och sedan köra nedan.
Den gör faktiskt inte ändringen utan genererar ett skript som du kan granska och köra.
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'
Eller så kan du titta på sys.sp_MSforeachdb
som här eller Aaron Bertrands förbättrade version här
Om du inte ser alla tecken när du kör detta, öppnar du frågealternativ för text och kontrollerar inställningen för 'Maximalt antal tecken som visas i varje kolumn'. Se till att detta är inställt på ett värde som är tillräckligt stort för att visa alla tecken.