En måde ville være at indstille "Resultater til tekst" på forespørgselsmenuen i SSMS og derefter udføre nedenstående.
Det foretager faktisk ikke ændringen, men genererer et script, som du kan gennemgå og udføre.
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 du kan se på sys.sp_MSforeachdb
som her eller Aaron Bertrands forbedrede version her
Hvis du ikke kan se alle tegnene, når du kører dette, skal du åbne Forespørgselsindstillinger for tekst og kontrollere indstillingen for 'Maksimalt antal tegn vist i hver kolonne'. Sørg for, at denne er indstillet til en værdi, der er stor nok til at vise alle tegn.