Một cách sẽ là Đặt "Kết quả thành Văn bản" trên menu truy vấn trong SSMS, sau đó thực hiện như bên dưới.
Nó không thực sự tạo ra thay đổi nhưng tạo ra một tập lệnh để bạn xem lại và thực thi.
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'
Hoặc bạn có thể xem tại sys.sp_MSforeachdb
như tại đây hoặc phiên bản cải tiến của Aaron Bertrand tại đây
Nếu bạn không nhìn thấy tất cả các ký tự khi chạy điều này, hãy mở Tùy chọn Truy vấn cho Văn bản và kiểm tra cài đặt cho 'Số ký tự tối đa được hiển thị trong mỗi cột'. Đảm bảo giá trị này được đặt thành giá trị đủ lớn để hiển thị tất cả các ký tự.