Create a Cursor with providing user_name(username)as the input parameter) DECLARE @name_holder VARCHAR(100) DECLARE UserCursor CURSOR FOR SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb','%snap%') OPEN UserCursor FETCH NEXT FROM UserCursor INTO @name_holder WHILE (@@FETCH_STATUS = 0) BEGIN EXEC sp_addrolemember 'db_datareader', 'user_name' FETCH NEXT FROM UserCursor INTO @name_holder END CLOSE UserCursor DEALLOCATE UserCursor