Skip to content

Read Only access to all databases to a user in a SQL Server Instance

'---------------------------------------------------------------------------------------------------------------------------
-- Script to grant a user read-only access to all the databases at on go in a SQL Server instance except the system databases and 
-- the Log shipped databases(secondary :read-only)
-- Created by : Gaurav Deep Singh Juneja
----------------------------------------------------------------------------------------------------------------------------
 
--STEP 1 : Create the Login(Windows or SQL) which needs the db_datareader access. ( 
 
--For example:
-----------------------------------------------------------------
--create login [doamin\username] from windows;
--create login [username] with password='######' ,CHECK_EXPIRATION = OFF,  CHECK_POLICY = OFF;  
 
--STEP 2:  Replace the user with the one that requires access in Set @user in parameters below
 
USE master
GO
 
DECLARE @DatabaseName NVARCHAR(100)   
DECLARE @SQL NVARCHAR(max)
DECLARE @User VARCHAR(64)
SET @User = '[username]' –-Replace Your User here
 
PRINT 'The following user has been selected to have read-only access on all user databases except system databases and log shipped databases:  ' +@user
 
DECLARE Grant_Permission CURSOR LOCAL FOR
SELECT name FROM sys.databases
WHERE name NOT IN ('master','model','msdb','tempdb','distribution')  
and [state_desc]='ONLINE' and  [is_read_only] <> 1 order by name
OPEN Grant_Permission  
FETCH NEXT FROM Grant_Permission INTO @DatabaseName  
WHILE @@FETCH_STATUS = 0  
 
BEGIN  
 
SELECT @SQL = 'USE '+ '[' + @DatabaseName + ']' +'; '+ 'CREATE USER ' + @User + 
    'FOR LOGIN ' + @User + '; EXEC sp_addrolemember N''db_datareader'', 
    ' + @User + '';
PRINT @SQL
EXEC sp_executesql @SQL
 
Print ''-- This is to give a line space between two databases execute prints.
 
FETCH NEXT FROM Grant_Permission INTO @DatabaseName  
  
END  
 
CLOSE Grant_Permission  
DEALLOCATE Grant_Permission
 
----------------------------Script end-------------------------------------------

'...

http://www.sqlservercentral.com/scripts/Security/164696/?utm_source=SSC&utm_medium=pubemail

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Die Kommentarfunktion wurde vom Besitzer dieses Blogs in diesem Eintrag deaktiviert.

Kommentar schreiben

Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Formular-Optionen