Detaillierte Zugriffssteuerung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite werden die Berechtigungen beschrieben, die Sie einer Datenbankrolle für eine detaillierte Zugriffssteuerung gewähren können.

Weitere Informationen zu Datenbankrollen und zur detaillierten Zugriffssteuerung finden Sie unter Detaillierte Zugriffssteuerung.

SELECT

Ermöglicht der Rolle, SELECT-Anweisungen für eine Tabelle auszuführen. Wenn eine Spaltenliste angegeben ist, gilt die Berechtigung nur für diese Spalten. Wenn keine Spaltenliste angegeben ist, gilt die Berechtigung für alle Spalten in der Tabelle, einschließlich der Spalten, die danach hinzugefügt werden.

  • Nachdem Sie SELECT für eine Teilmenge von Spalten für eine Tabelle gewährt haben, kann der FGAC-Nutzer SELECT * nicht mehr für diese Tabelle verwenden. Abfragen für diese Tabelle müssen alle Spalten benennen, die enthalten sein sollen.

  • SELECT wird für eine generierte Spalte gewährt, SELECT jedoch nicht für die zugrunde liegenden Basisspalten.

  • Bei verschränkten Tabellen wird SELECT, das für die übergeordnete Tabelle gewährt wurde, nicht an die untergeordnete Tabelle weitergegeben.

  • Wenn SELECT mit einer Aggregatfunktion für bestimmte Spalten verwendet wird, z. B. SUM(col_a), muss die Rolle die Berechtigung SELECT für diese Spalten haben. Wenn die Aggregatfunktion keine Spalten angibt, z. B. COUNT(*), muss die Rolle die Berechtigung SELECT für mindestens eine Spalte in der Tabelle haben.

Beispiele

GRANT SELECT ON TABLE employees TO ROLE hr_director;

GRANT SELECT ON TABLE customers, orders, items TO ROLE account_mgr;

GRANT SELECT(name, level, cost_center, location, manager) ON TABLE employees TO ROLE hr_manager;

GRANT SELECT(name, address, phone) ON TABLE employees, contractors TO ROLE hr_rep;

Im vorherigen letzten Beispiel müssen alle benannten Spalten in beiden Tabellen vorhanden sein.

INSERT

Ermöglicht der Rolle, Zeilen in die angegebenen Tabellen einzufügen. Wenn eine Spaltenliste angegeben ist, ist die Berechtigung nur für diese Spalten gültig. Wenn keine Spaltenliste angegeben ist, gilt die Berechtigung für alle Spalten in der Tabelle.

  • Wenn Spaltennamen angegeben sind, erhält jede nicht eingefügte Spalte ihren Standardwert.

  • INSERT können für generierte Spalten nicht gewährt werden.

Beispiele

GRANT INSERT ON TABLE employees, contractors TO ROLE hr_manager;

GRANT INSERT(name, address, phone) ON TABLE employees TO ROLE hr_rep;

UPDATE

Ermöglicht der Rolle, Zeilen in den angegebenen Tabellen zu aktualisieren. Aktualisierungen können auf eine Teilmenge von Tabellenspalten beschränkt werden.

  • Zusätzlich zur Berechtigung UPDATE benötigt die Rolle die Berechtigung SELECT für alle Schlüsselspalten und alle abgefragten Spalten. Spalten in der Warteschlange umfassen Spalten in der WHERE-Klausel und Spalten, die zur Berechnung der neuen Werte von aktualisierten Spalten und generierten Spalten verwendet werden.

  • UPDATE können für generierte Spalten nicht gewährt werden.

Beispiele

GRANT UPDATE ON TABLE employees, contractors TO ROLE hr_manager;

GRANT UPDATE(name, address, phone) ON TABLE employees TO ROLE hr_rep;

DELETE

Ermöglicht der Rolle, Zeilen aus den angegebenen Tabellen zu löschen.

  • DELETE kann nicht auf Spaltenebene gewährt werden.

  • Die Rolle benötigt außerdem SELECT für alle Schlüsselspalten und alle Spalten, die in WHERE-Klauseln der Abfrage enthalten sein können.

  • Bei überlappenden Tabellen ist die Berechtigung DELETE nur für die übergeordnete Tabelle erforderlich. Wenn für eine untergeordnete Tabelle ON DELETE CASCADE angegeben ist, werden Zeilen aus der untergeordneten Tabelle auch ohne die Berechtigung DELETE für die untergeordnete Tabelle gelöscht.

Beispiel

GRANT DELETE ON TABLE employees, contractors TO ROLE admin;

Weitere Informationen

Weitere Informationen finden Sie unter: