Inhoudsopgave:
Video: Basisprincipes van brandbestrijding: waarom is verandering nodig? 2024
Bepalen wie rechten voor databases heeft, iets dat elke databasebeheerder (DBA) heeft om te bepalen. Eén type privilege in Oracle 12c is o bjectprivileges die de gegevenstoegang en -modificatie besturen.
Grondbeginselen van objectrechten in Oracle 12c
U kunt slechts acht objectrechten verlenen:
-
SELECT laat de ontvanger rijen selecteren uit tabellen
-
INSERT laat de ontvanger rijen invoegen in tabellen.
-
UPDATE laat de ontvanger bestaande rijen in tabellen wijzigen.
-
DELETE laat de ontvanger bestaande rijen uit tabellen verwijderen.
-
REFERENCES laat een gebruiker een weergave van of een externe sleutel maken naar de tabel van een andere gebruiker.
-
INDEX laat één gebruiker een index maken op de tabel van een andere gebruiker.
-
ALTER laat één gebruiker de structuur van de tabel van een andere gebruiker wijzigen of toevoegen.
-
EXECUTE laat de ontvanger procedures uitvoeren die eigendom zijn van een andere gebruiker.
Houd rekening met deze privileges:
-
Wanneer u een object bezit, beschikt u automatisch over alle rechten voor dat object. Met andere woorden, u hoeft geen SELECT te krijgen op uw eigen tafel.
-
Objectrechten kunnen niet worden ingetrokken door de eigenaar van een object.
-
Elk schema dat het object bezit, bepaalt uiteindelijk de privileges van dat object.
-
Zonder uitdrukkelijke toestemming kan niemand anders de objectprivileges van het object beheren - nou ja, niemand anders dan een gebruiker die mogelijk het systeemrecht HEEFT ELK OBJECT (meestal gereserveerd voor DBA's).
-
Het voorrecht van een object kan niet worden herroepen door iemand anders dan de persoon die het heeft verleend, behalve iemand met het recht GRANT ELK DOEL. Zelfs de eigenaar kan een privilege op haar eigen object niet intrekken, tenzij ze de concessieverlener was.
Objectrechten beheren in Oracle 12c
In de volgende stappen werken de gebruikers MAGGIE, JASON en MATT in een database die recepten bevat. In dit voorbeeld worden objectrechten gebruikt om meer recepten te bekijken en toe te voegen.
-
Maggie logt in.
-
Maggie typt het volgende:
Hiermee kan gebruiker MAGGIE JASON toestaan te kiezen uit haar tabel VEGETARIAN_RECIPES. Ze ziet dit:
Grant is geslaagd.
Vergelijkbaar met WITH ADMIN OPTION van systeemrechten, hebben objectrechten de naam WITH GRANT OPTION.
-
MAGGIE kan JASON toestaan om INSERT in haar tabel in te voegen en JASON toe te staan om dat voorrecht door te geven:
-
JASON kan dat INSERT-privilege doorgeven aan MATT:
-
MAGGIE kan het INSERT-privilege niet van MATT intrekken. Ze moet JASON vragen om dat te doen.
-
Als JASON weigert de INSERT-rechten voor MATT in te trekken, kan MAGGIE het privilege van JASON intrekken en het op zijn beurt weer van MATT intrekken. Het heet een trapsgewijze intrekking. Houd er rekening mee dat dit verschilt van systeemrechten.
-
MAGGIE kan het INSERT-privilege van JASON intrekken en ondertussen ze automatisch intrekken vanuit MATT:
Ze ziet dit:
Revoke is geslaagd.
Als een gebruiker wil zien welk object privilege ze hebben uitgegeven, kan ze de weergave USER_TAB_PRIVS opvragen.
MAGGIE kan bijvoorbeeld zien welke privileges JASON nog heeft op haar objecten:
Ze ziet zoiets als dit:
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE ---------- ----- ----- ------------------ ---------- ------ JASON MAGGIE VEGETARIAN_RECIPES MAGGIE SELECT >