Privilegii sistem
Permit utilizatorilor sa execute gama specificata
de actiuni sistem sau sau o anumita actiune asupra unui tip particular
de obiecte schemã. (privilegiul de a crea un spatiu
de tabele sau de a sterge randuri din orice tabel).
Exista disponibile mai mult de 100 de privilegii
sistem distincte. Acestea pot fi acordate de DBA. Se pot distinge
doua categorii generale de privilegii sistem: privilegii DBA si privilegii
utilizator. La nivelul bazei de date nu se face ditinctie intre cele doua
tipuri de privilegii sistem.
In mod obisnuit DBA are urmatoarele privilegii:
Privilegii sistem | Operatii autorizate prin acestea |
CREATE USER
Exemplu DROP USER |
se pot crea alti utilizatori Oracle (privilegiu necesar rolului DBA)
poate elimina alt utilizator |
AUDIT ANY | activeaza sau dezactiveaza auditul pentru baza de date |
CREATE ANY TABLE
DROP ANY TABLE SELECT ANY TABLE |
poate crea tabele in orice schema
poate elimina orice tabel din schema poate interoga tabele sau vederi in orice schema |
BACKUP ANY TABLE | poate arhiva orice tabel din schema cu utilitarele de export |
CREATE TABLESPACE | poate crea un nou spatiu de tabele |
DROP ANY INDEX | sterge un index din orice schema |
Un utilizator poate avea urmatoarele privilegii
Privilegii sistem | Operatii permise |
CREATE SESSION | conectarea la baza de date |
CREATE TABLE | crearea tabelelor in schema utilizatorului |
CREATE SEQUENCE | crearea secventelor in schema utilizator |
CREATE VIEW | crearea unei vederi inschema utilizatorului |
CREATE PROCEDURE | crearea de proceduri stocate, functii sau pachete in schema utilizatorului |
Privilegiile sunt acordate utilizatorilor astfel incat acestia
pot accesa si modifica date in baza de date. Un
utilizator poate primi privilegii in doua moduri:
- explicit
- privilegiile pot fi atribuite unui rol si apoi acesta poate
fi atribuit unuia sau mai multor utilizatori ( privilegiul de a insera
inregistrari in tabelul employees poate fi atribuit rolului numit CCC,
care apoi poate fi atribuit utilizatorilor SCOTT si BRIAN.
GRANT privilegiu [privilegiu, ]
TO USER [user / rol, PUBLIC...];
GRANT create session, create table, create sequence,
create view
TO scott;
Privilegii asupra obiectelor schema
Permite utilizatorilor sa execute o anumita actiune asupra unui
obiect schema specific (privilegiul de a sterge randuri dintr-un
anumit tabel)
Fiecare obiect are un anumit set de privilegii care ii pot fi
atasate (figura).
Privilegii obiect | Tabel | Vedere | Secventa | Procedura |
ALTER | * | * | ||
DELETE | * | * | ||
EXECUTE | * | |||
INDEX | * | |||
INSERT | * | * | ||
REFERENCES | * | * | ||
SELECT | * | * | * | |
UPDATE | * | * |
Se poate observa ca privilegiile obiect variaza de la un obiect la altul. Unui utilizator i se atribuie in mod automat toate privilegiile obiect pentru obiectele schema din propria sa schema si poate acorda orice privilegiu asupra oricarui obiect schema unui alt utilizator sau rol.
GRANT privilegii_obiect [ALL] [(coloane)]
ON obiect
TO {utilizator | rol | PUBLIC}
[WITH GRANT OPTION];
GRANT update( first_name, last_name) on employees to public;
ALL - specifica toate privilegiile obiect
Coloane - specifica acele coloane dintr-un tabel sau vedere
pentru care sunt acordate privilegii
ON - specifica obiectele pentru care sunt acordate privilegii
TO – specifica cui vor fi acordate privilegiile
PUBLIC - acorda privilegiile specificate tuturor
utilizatorlor
WITH GRANT OPTION – permite celui care a primit
privilegiile sa le acorde la randul sau altor utilizatori sau roluri
Observatii:
1. Pentru a avea capacitatea de a acorda privilegii asupra unui
obiect trebuie ca acesta sa se afle in schema proprie a utilizatorului
sau trebuie ca privilegiile sa ii fi fost acordate cu optiunea
WITH GRANT OPTION
2. proprietarul unui obiect poate poate transmite orice
privilegiu asupra acelui obiect oricarui alt utilizator sau
rol din baza de date.
3. proprietarul unui obiect primeste automat toate privilegiile asupra
obiectului respectiv.
4. privilegiile acordate in virtutea clauzei WITH
GRANT OPTION vor fi revocate daca au fost revocate pentru
utilizatorul care le-a transmis
Exemple
REVOKE {privilegiu [,
privilegiu...] | ALL}
ON obiect
FROM {utilizator [, utilizator...]| rol | PUBLIC }
[CASCADE CONSTRAINTS]
CASCADE CONSTRAINTS inlatura orice constrangere de integritate referentiala asupra obiectului realizata prin intermediul privilegiului REFERENCES
REVOKE select, insert
ON departments
FROM scott;
Vederea din dictionarul de date | Descriere |
ROLE_SYS_PRIVS | Privilegii sistem acordate rolurilor |
ROLE_TAB_PRIVS | Privilegii asupra tabelelor acordate rolurilor |
USER_ROLE_PRIVS | Roluri accesibile utilizatorilor |
USER_TAB_PRIVS_MADE | Privilegii obiect acordate utilizatorilor obiectelor |
USER_TAB_PRIVS_RECD | Privilegii obiect acordate utilizatorilor |
USER_COL_PRIVS_MADE | Privilegii obiect asupra coloanelor acordate utilizatorului obiectului |
USER_COL_PRIVS_RECD | Privilegii obiect acordate utilizatorilor asupra coloanelor specificate |
USER_SYS_PRIVS | Privilegiile sistem acordate utilizatorului |