Cuprins:
- Elementele de bază ale privilegiilor de obiect în Oracle 12c
- Cum să gestionați privilegii de obiect în Oracle 12c
Video: Suspense: Hitchhike Poker / Celebration / Man Who Wanted to be E.G. Robinson 2024
Decizia care privilegii pentru bazele de date este ceva pe care fiecare administrator de baze de date (DBA) a determina. Un tip de privilegiu în Oracle 12c este o privilegii bject care controlează accesul la date și modificările.
Elementele de bază ale privilegiilor de obiect în Oracle 12c
Puteți acorda numai opt privilegii de obiect:
-
SELECT permite destinatarului să selecteze rânduri din tabele
-
INSERT
-
UPDATE permite destinatarului să modifice rândurile existente în tabele.
-
DELETE permite destinatarului să elimine rândurile existente din tabele.
-
REFERINȚE permite unui utilizator să creeze o vizualizare sau o cheie străină în tabelul altui utilizator.
-
INDEX permite unui utilizator să creeze un index pe tabelul altui utilizator.
-
ALTER permite unui utilizator să modifice sau să adauge structura tabelului unui alt utilizator.
-
EXECUTE permite administratorului să execute proceduri deținute de un alt utilizator.
Țineți cont de aceste trăsături de privilegii:
-
Când dețineți un obiect, aveți automat toate privilegiile asupra acelui obiect. Cu alte cuvinte, nu trebuie să vi se atribuie SELECT pe masa proprie.
-
Privilegiile obiectului nu pot fi revocate de proprietarul unui obiect.
-
Orice schemă deține obiectul în final controlează privilegiile obiectului.
-
Fără permisiunea expresă, nimeni altcineva nu poate gestiona privilegiile obiectului respectivului obiect - bine, nimeni, cu excepția unui utilizator care ar putea avea privilegiul de sistem GRANTA orice obiect (de obicei rezervat pentru DBA).
-
Privilegiul pentru obiect nu poate fi revocat de nimeni decât de persoana care a acordat privilegiul, cu excepția unei persoane cu privilegiul de acordare a unui obiect. Nici măcar proprietarul nu poate revoca un privilegiu asupra propriului său obiect dacă nu a fost furnizorul.
Cum să gestionați privilegii de obiect în Oracle 12c
În pașii următori, utilizatorii MAGGIE, JASON și MATT lucrează într-o bază de date care conține rețete. Acest exemplu folosește privilegii de obiect pentru a le permite să vizualizeze și să adauge mai multe rețete.
-
Maggie se loghează.
-
Maggie tipă următoarele:
Aceasta permite utilizatorului MAGGIE să permită JASON să aleagă din tabelul VEGETARIAN_RECIPES. Vede asta:
Grant a reușit.
Similar cu opțiunea ADMIN OPTION a privilegiilor de sistem, privilegiile de obiect au ceva numit OPTION GRANT.
-
MAGGIE poate permite JASONULUI să se poată insera în tabelul său și să permită lui JASON să transmită acel privilegiu:
-
JASON poate transmite privilegiul INSERT la MATT:
-
MAGGIE nu poate să revocare privilegiului INSERT de la MATT. Trebuie să-i ceară lui Jason să facă acest lucru.
-
Dacă JASON refuză revocarea privilegiilor INSERT pentru MATT, MAGGIE poate revoca privilegiul de la JASON și, la rândul său, îl revocă de la MATT. Se numește o revocare cascadă . Rețineți că acest lucru este diferit de privilegiile de sistem.
-
MAGGIE poate revoca privilegiul INSERT de la JASON și, între timp, le revocă automat din MATT:
Vede asta:
Revoke a reușit.
Dacă un utilizator dorește să vadă ce privilegiu de obiect le-a oferit, poate interoga vizualizarea USER_TAB_PRIVS.
De exemplu, MAGGIE poate vedea ce privilegii JASON a lăsat pe obiectele ei:
Ea vede ceva de genul acesta:
PROPRIETĂTORUL DE GRANTE TABLE_NAME PRIVILEGA GRANTOR ---------- ----- ----- --------------------------------- JASON MAGGIE VEGETARIAN_RECIPES MAGGIE SELECT >