Inhaltsverzeichnis:
Video: Die Grundlagen der Programmierung kurz und knapp 2024
Entscheiden, wer für Datenbanken privilegiert, hat jeder Datenbankadministrator (DBA) bestimmen. Ein Typ von Privileg in Oracle 12c ist o bject-Privilegien , der den Datenzugriff und die Modifikation steuert.
Grundlagen von Objektrechten in Oracle 12c
Sie können nur acht Objektrechte vergeben:
-
SELECT lässt den Empfänger Zeilen aus Tabellen auswählen
-
INSERT lässt den Empfänger Zeilen in Tabellen einfügen.
-
UPDATE kann der Empfänger vorhandene Zeilen in Tabellen ändern.
-
DELETE lässt den Empfänger vorhandene Zeilen aus Tabellen entfernen. Mit
-
REFERENCES kann ein Benutzer eine Ansicht oder einen Fremdschlüssel für die Tabelle eines anderen Benutzers erstellen. Mit
-
INDEX kann ein Benutzer einen Index für die Tabelle eines anderen Benutzers erstellen.
-
ALTER ermöglicht es einem Benutzer, die Struktur der Tabelle eines anderen Benutzers zu ändern oder hinzuzufügen.
-
EXECUTE kann der Empfänger Prozeduren ausführen, die einem anderen Benutzer gehören.
Behalten Sie diese Privilegien im Hinterkopf:
-
Wenn Sie ein Objekt besitzen, verfügen Sie automatisch über alle Berechtigungen für dieses Objekt. Mit anderen Worten, SELECT muss nicht an einer eigenen Tabelle gewährt werden.
-
Objektberechtigungen können nicht vom Besitzer eines Objekts widerrufen werden.
-
Welches Schema auch immer das Objekt besitzt, steuert letztendlich die Rechte dieses Objekts.
-
Ohne ausdrückliche Erlaubnis kann niemand anderes die Objektberechtigungen dieses Objekts verwalten - also niemand außer einem Benutzer, der das Systemprivileg GRANT ANY OBJECT (normalerweise für DBAs reserviert) besitzt.
-
Die Objektberechtigung kann von niemandem widerrufen werden, außer von der Person, die sie erteilt hat, mit Ausnahme der Person mit der Berechtigung GRANT ANY OBJECT. Nicht einmal der Eigentümer kann ein Privileg an seinem eigenen Objekt widerrufen, wenn er nicht der Konzessionsgeber war.
So verwalten Sie Objektprivilegien in Oracle 12c
In den folgenden Schritten arbeiten die Benutzer MAGGIE, JASON und MATT in einer Datenbank mit Rezepten. In diesem Beispiel werden Objektprivilegien verwendet, damit sie weitere Rezepte anzeigen und hinzufügen können.
-
Maggie meldet sich an.
-
Maggie gibt Folgendes ein:
Damit kann der Benutzer MAGGIE JASON die Auswahl aus seiner VEGETARIAN_RECIPES-Tabelle erlauben. Sie sieht das:
Grant ist erfolgreich.
Ähnlich wie WITH ADMIN OPTION von Systemprivilegien haben Objektprivilegien etwas namens WITH GRANT OPTION.
-
MAGGIE kann es JASON erlauben, in ihre Tabelle EINFÜGEN zu können und JASON zu erlauben, dieses Privileg weiterzugeben:
-
JASON kann dieses INSERT-Privileg an MATT weitergeben:
-
MAGGIE kann das INSERT-Privileg von MATT nicht widerrufen. Sie muss JASON darum bitten.
-
Wenn JASON es ablehnt, INSERT-Berechtigungen für MATT zu widerrufen, kann MAGGIE die Berechtigung von JASON widerrufen und diese wiederum von MATT widerrufen. Es ist ein kaskadierender Widerruf genannt. Beachten Sie, dass sich dies von Systemprivilegien unterscheidet.
-
MAGGIE kann das INSERT-Privileg von JASON entziehen und zwischendurch automatisch von MATT abmelden:
Sie sieht dies:
Revoke erfolgreich.
Wenn ein Benutzer sehen möchte, welches Objektprivileg er ausgegeben hat, kann er die Sicht USER_TAB_PRIVS abfragen.
Zum Beispiel kann MAGGIE sehen, welche Privilegien JASON auf ihren Objekten gelassen hat:
Sie sieht so etwas wie:
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE ---------- ----- ----- ------------------ ---------- ---------- JASON MAGGIE VEGETARIAN_RECIPES MAGGIE SELECT >