Erstellen Sie eine Datenbankrolle, um Lesezugriff auf alle Tabellen zu ermöglichen. Schreibzugriff auf einige


9

Wir haben eine Datenbank mit über 1000 Tabellen. Ich muss eine Rolle erstellen, die nur Lesezugriff auf alle Tabellen sowie Schreibzugriff auf zwei bestimmte Tabellen ermöglicht.

Ich habe mit Datenbankrollen herumgespielt, aber wann immer ich die Tabellen hinzufügte, musste ich alle 1000 von Hand auswählen ... gibt es einen besseren Weg, dies zu tun?


Das könnte tatsächlich der einfachste Weg sein ... Gibt es einen Weg, das zu schreiben? Ich muss eine Reihe von Skripten aufbewahren, damit wir bei jeder Aktualisierung einer dieser Datenbanken alle Einstellungen sofort zurückerhalten können.
Wes

Antworten:


9

Durch das Erteilen von Berechtigungen für das Schema (z. B. dbo) werden alle Objekte in diesem Schema kaskadiert. Für einzelne Ausnahmen können Sie diese einfach explizit auflisten:

GRANT SELECT ON SCHEMA::dbo TO [role];
GO

GRANT INSERT, UPDATE --, DELETE
  ON dbo.table_they_can_write_to TO [role];

DENY SELECT ON dbo.table_they_cannot_read TO [role];

3
Leicht genug. Ich bin froh, dass wir so eine Community haben.
Wes

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.