Eine Möglichkeit wäre, „Results to Text“ im Abfragemenü in SSMS festzulegen und dann das Folgende auszuführen.
Es nimmt die Änderung nicht wirklich vor, sondern generiert ein Skript, das Sie überprüfen und ausführen können.
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'
Oder Sie könnten sich sys.sp_MSforeachdb
ansehen wie hier oder Aaron Bertrands verbesserte Version hier
Wenn Sie beim Ausführen nicht alle Zeichen sehen, öffnen Sie die Abfrageoptionen für Text und überprüfen Sie die Einstellung für „Maximale Anzahl der in jeder Spalte angezeigten Zeichen“. Stellen Sie sicher, dass dieser Wert groß genug ist, um alle Zeichen anzuzeigen.