Uma maneira seria definir "Resultados para texto" no menu de consulta no SSMS e executar o abaixo.
Na verdade, ele não faz a alteração, mas gera um script para você revisar e executar.
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'
Ou você pode ver
sys.sp_MSforeachdb
como aqui ou a versão melhorada de Aaron Bertrand aqui Se você não estiver vendo todos os caracteres ao executar isso, abra as Opções de consulta para texto e verifique a configuração para 'Número máximo de caracteres exibidos em cada coluna'. Certifique-se de que está definido para um valor grande o suficiente para exibir todos os caracteres.