14 Stimmen

So gewähren Sie Benutzern nur Lesezugriff auf alle Datenbanken

Ich möchte, dass eine Gruppe von Benutzern nur Lesezugriff auf alle Tabellen und Ansichten in allen Datenbanken auf SQL Server hat (ich verwende SS2008). Ich möchte, dass diese Benutzer nur Lesezugriff auf alle zukünftigen Tabellen und Ansichten haben.

Wie würden Sie das einrichten?

0 Stimmen

Da dies eine wirklich alte Frage ist, die immer noch viele Aufrufe erhält, beachten Sie, dass in SQL 2014+, GRANT CONNECT ANY DATABASE TO <SQL_Login>; zusammen mit GRANT SELECT ALL USER SECURABLES TO <SQL_Login>; wird viel einfacher sein als die alte Vorgehensweise.

9voto

SQLMenace Punkte 128184

Fügen Sie den Benutzer zum db_datareader Rolle

Beispiel

exec sp_addrolemember 'db_datareader',YourLogin

Infos über db_datareader : http://msdn.microsoft.com/en-us/library/ms188629(SQL.90).aspx

6 Stimmen

Dies ermöglicht den Nur-Lese-Zugriff auf eine einzelne Datenbank, nicht auf alle Datenbanken. Sie müssen dies für jede Datenbank tun.

2voto

MyCuky LoVe Punkte 76
DECLARE @dbname VARCHAR(50)
DECLARE @statement NVARCHAR(max)
DECLARE db_cursor CURSOR

LOCAL FAST_FORWARD
FOR SELECT name FROM MASTER.dbo.sysdatabases OPEN db_cursor
    FETCH NEXT FROM db_cursor INTO @dbname 
WHILE @@FETCH_STATUS = 0
BEGIN
    /* This sentence will be executed to gran the privileges. */
    SELECT @statement = 'use ['+@dbname+']; '+'EXEC sp_addrolemember N''db_datareader'', N''userPeter''';
    EXEC sp_executesql @statement
    FETCH NEXT FROM db_cursor INTO @dbname
END

An dem Ort, der erscheint userPeter müssen Sie Ihren Benutzernamen eingeben.

0voto

Tom H Punkte 45699

Sie sollten einfach in der Lage sein, die Benutzer der Datenbankrolle db_datareader in jeder der Datenbanken hinzuzufügen. Sie könnten ein Skript schreiben, das die Datenbanken in einer Schleife durchläuft und dies für Sie erledigt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X