Sunteți pe pagina 1din 7

Oracle

-Securitatea bazelor de date-

Oracle pune la dispozitia DBA-ului (DBA = Database Administrator)


mai multe nivele de securitate:
 Securizarea conturilor pentru validarea utilizatorilor
 Securizarea accesului la obiectele bazei de date
 Securizarea la nivelul de sistem pentru administrarea privilegiilor globale
(generale)

1.1 Securitatea conturilor

Pentru a putea accesa datele dintr-o baza de date Oracle, trebui sa ai acces
la un cont din aceea baza de date. Acest acces poate fi direct – prin intermediul
conexiunilor utilizatorilor la o baza de date – sau indirect. Conexiunile indirecte
includ accesul prin intermediul unor autorizari presetate la legaturile bazei de
date. Fiecare cont trebuie sa aiba o parola asociata. Un cont pe o baza de date
poate fi de-asemenea legat de contul din sistemul de operare.
Parolele sunt alocate unui utilizator in momentul in care utilizatorul
respectiv este creat si pot fi modificate dupa ca utilizatorul a fost creat.
Posibilitatile utilizatorului de a modifica parola contului pot fi limitate prin
intermediul uneltelor prin intermediul carora primeste acordul de a se loga la

baza de date. In baza de date se stocheaza o versiune criptata a parolei intr-un


tabel de date. Daca contul este legat direct cu contul sistemului de operare, este
posibil sa se omita verificarea parolei.
Incepand cu Oracle8, parolele pot sa expire si DBA-ul poate stabili in ce
conditii o parola poate fi refolosita (cu ajutorul istoriei parolelor din baza de
date). De asemenea se pot folosi anumite profile care sa permita introducerea
parolelor cu anumite restrictii (de exemplu: parola sa aiba o lungime minima), si

se pot bloca automat anumite conturi daca sunt mai multe incercari nereusite
succesive de logare la acel cont.

1.2. Privilegii legate de obiecte


Accesul la obiectele unei baze de date se mai numeste si privilegiu.
Acestea permit anumite comenzi specifice ale bazei de date sa poata fi folosite
asupra unor anumite obiecte ale bazei de date, pentru aceasta se foloseste
comanda grant. De exemplu daca utilizatorul ION are o tabela numita
EMPLOYEE si executa comanda:

grant select on EMPLOYEE to PUBLIC;

atunci toti utilizatorii( PUBLIC) vor putea sa execute instructiuni de tip


SELECT pe tabela ANGAJATI a lui ION. Poti crea si grupuri de privilegii –
roluri – pentru a administra mai usor privilegiile. Pentru aplicatiile cu un numar
foarte mare de utilizatori folosirea rolurilor reduc considerabil numarul de
comenzi grant care trebui date. Intru cat rolurile pot fi protejate prin parole si
pot fi activate sau dezactivate dinamic, ele adauga un nou nivel de securitate
bazei de date.

1.3. Rolurile si Privilegiile de la nivelul sistem

Pot fi folosite rolurile pentru a administra comenzile de la nivelul sistem


disponibile utilizatorilor. Printre aceste comenzi se innumara CREATE TABLE
si ALTER INDEX. Actiunile asupra fiecarui tip de obicte ale bazei de date sunt
autorizate prin privilegii separate. De exemplu: unui user i se poate acorda
privilegiul CREATE TABLE dar nu si privilegiul CREATE TYPE. Se pot crea
roluri la nivelul sistem care pot acorda utilizatorilor privilegii de care au nevoie
fara a le acorda mai multe privilegii decat le sunt necesare in lucrul cu baza de
date. Rolurile standard CONNECT si RESOURCE sunt folositoare pentru cele
mai de baza privilegii de sistem necesare utilizatorilor si respectiv
dezvoltatorilor.
Utilizatorii care au rolul RESOURSE au primit de asemenea si privilegiu de
sistem TABLESPACE, si astfel acestia au dreptul de a crea obiecte oriunde in
baza de date. Datorita acestui privilegiu trebui sa oferi acest rol RESOURCE
pentru departamentele de dezvoltare si de testare.

1.4. Implementarea securitatii

Posibilitatile de securizare in Oracle includ roluri, profile si acordarea


directa de privilegii. Pachetul Oracle Enterprise Manager este util pentru
administrarea conturilor, rolurilor, privilegiilor si profilelor.
1.4.1. Punctul de pornire: Securitatea Sistemului de Operare

Nu poti accesa o baza de date daca in prealabil nu ai reusit sa accesezi –


direct sau indirect – serverul pe care ruleaza aceea baza de date. Primul pas este
securizarea platformelor si a retelei pe care aceasta lucreaza.
Oracle foloseste un numar de fisiere la care utilizatorii nu au acces direct.
De exemplu: datafiles si redo log sunt scrise si citite doar prin procesele
interioare ale lui Oracle. De aceea doar administratorii pot crea si sterge astfel
de fisiere si asta la nivelul de sistem de operare.
Datele pot fi copiate in alte tabele fie ca facand parte dintr-o schema de
copiere. Pentru a securiza datele, va trebui sa securizeze fiecare baza de date in
care datele tale se afla, impreuna cu backupurile ale fiecarei baze de date in
parte. Daca cineva poate sa plece cu o copie a bazei de date atunci toate
eforturile tale au fost de prisos. Trebuie prevenit accesul neautorizat la toate
copiile bazei de date.

1.5. Crearea utilizatorilor

La crearea unui utilizator scopul este acela de a crea un cont securizat si


care are acordate privilegiile si setarile default adecvate. Se poate folosi
comanda CREATE USER pentru a crea un nou cont pe baza de date. La crearea
unui nou cont nu va avea nici o posibilitate si useri nici macar nu se vor putea
log-a pana cand nu li se acord acest privilegiu.
Toate setarile necesare pentru creearea unui cont de user pot fi specificate
in interiorul unei singure comenzi CREATE USER. Parametrii corespunzatori
acestei comenzi sunt prezenteti in Tabelul 1.

parametru folosire
username numele schemei
password parola contului, care poate fi legat direct la sistemul de conturi al
sistemului de operare sau autentificat prin intermediul serviciului de
autentificare al retelei. Pentru identificarea la nivel de calculator se
foloseste identified externelly. si pentru identificarea la nivel de retea se
foloseste identified globally as
default tabela spatiu implicita in care se salveaza obiectele din aceasta schema.
tablespace Aceasta setare nu ii da dreptul user-ului de a crea obiecte
temporary tabela spatiu in care se salveaza segmentele temporare folosite in timpul
tablespace interogarilor
quota [pe permite user-ilor sa stocheze date in tabela spatiu specificata pana la
tabela spatiu] spatiul total specificat prin cota
profile stabileste profilul pentru utilizator, daca nu e specificat nici umul se
foloseste profilul implicit. Profilele sunt folosite pentru a restrictiona
folosirea resurselor sistem si pentru a intari regulile de administrare a
parolelor
default role[s] configureaza rolul implicit care vor fi activate pentru utilizator
Tabel 1 parametrii comenzii CREATE USER

Un exemplu de folosire a comenzii CREATE USER este oferit in


continuare. In acest exemplu utilizatorul THUMPER este creat, cu parola
RABBIT, o tabela spatiu implicita USERS, o tabela spatiu temporara TEMP
fara cota si cu profilul implicit.

create user THUMPER


identified by RABBIT
default tablespace USERS
temporary tablespace TEMP;

Din moment ce nu a fost specificat nici un profil, va fi folosit profilul


implicit al tabelei.
Din moment ce nu a fost specificata o cota utilizatorul nu poate crea
obiecte in baza de date. Pentru a acorda o cota din resurse, se foloseste
parametrul quota al lui create user sau alter user asa cum va fi exemplificat mai
jos. In exemplu, THUMPER a primit o cota de 100MB din tabela spatiu
USERS.

alter user THUMPER


qouta 100M on USERS;

Acum utilizatorul THUMPER poate folosi pana la 100MB din tabela spatiu
USERS.
Exceptand numele utilizatorului toti ceilalti parametrii ai comenzii create
user pot fi modificati cu ajutorul comenzii alter table.
Din fereastra OEM Security Manager se pot crea useri sau se pot crea useri
asemanatori altor useri deja existenti. Aceasta caracteristica iti permite sa creezi
utilizatori noi care au aceleasi caracteristici ca si utilizatorii deja existenti.
Figura 1 arata figura initiala a ferestrei Security Manager cu user-ul THUMPER
selectat. Cu ajutorul utilitarului OEM se pot atribui unui utilizator nou roluri,
privilegii de sistem, privilegii de obiecte si cota. In figura 1 autentificarea prin
parola permite realizarea unei parole personalizate, scopul acelui cont este de a
fi global – folosit pentru administrarea bazei de date de la distanta – sau contul
va fi identificat extern. Obtiunea de expirarea a parolei este disponibila si contul
poate fi crea inchis sau deschis.
Se pot crea useri noi selectand optiunea „general” si dand un click cu
butonul drept al mouse-ului sau selectand optiunea „Create” din meniul de
obiecte in timp ce se
1.6. Stergerea utilizatorilor

Un user se poate sterge cu ajutorul comenzii drop user. Aceasta comanda


are un parametru CASCADE care sterge toate obiectele din schema user-ului si
apoi sterge user-ul. Daca un utilizator este proprietarul unor obiecte atunci
pentru stergerea sa este nevoie de CASCADE. Un exemplu simplu de stergere a
unui user este prezentat in continuare:
drop user THUMPER cascade;

Orice tabel virtual(view), sinonim, procedura, functie sau pachet care se


refera la obiectele user-ului sters vor fi trecute in starea INVALID. Daca un alt
user este creat cu acelasi nume mai tarziu, noul user nu va mosteni de la cel
dinaintea sa nimic. Utilitarul OEM ofera posibilitatea „remove”(sterge) care
permiter ca un utilizator sa fie sters. OEM afiseaza si o fereastra de confirmare
inainte ca utilizatorul sa fie sters.

1.7 Administrarea parolelor

Incepand cu Oracle 8 se pot folosi profile pentru administrarea expirarii, a


reutilizarii si a complexitatii parolelor.De exemplu se poate limita durata de
viata a unei parole si blocarea unui cont a carui parola este prea veche.
Deoarece se poate forta o parola sa fie potrivita din punct de vedere al
complexitatii si complexitate si bocarea unui cont care are incercari repetate de
log-are.
De exemplu deca configurati FAILED_LOGIN_ATTEMPTS din profilul
utilizatorului la 5, atunci 5 log-ari eronate vor fi permise pentru acel cont, la a 6-
a incercare contul va fi blocat.

create profile LIMITED_PROFILE limit


FAILED_LOGIN_ATTEMPTS 5;

create user JANE identified by EYRE


profile LIMITED_PROFILE;

grant CREATE SESSION to JANE;

Daca sunt 6 incercari concomitente gresite de conectare la contul JANE,


contul va fi automat blocat si apoi cand se va folosii parola corecta va primii
eroarea:
connect jane/eyre
ERROR: ORA-28000: the account is locked
Pentru a debloca contul se foloseste clauza ACCOUNT UNLOCK a
comenzii ALTER USER asa cum urmeaza:

alter user JANE account unlock;

Dupa deblocarea contului accesul la contul JANE va fin din nou


permis.Se poate bloca manual un cont folosind clauza ACCOUNT LOCK a
comenzii ALTER USER:

alter user JANE account lock;

Daca un cont este blocat datorita incercarilor eronate de log-are se va


debloca automat cand valuarea profilului PASSWORD_LOCK_TIME este
depasita.De exemplu daca PASSWORD_LOCK_TIME are valoarea 1, atunci
contul JANE va fi blocat pentru o zi si apoi se va debloca.
Se poate stabili o durata maxima de viata a unei parole prin intermediul
PASSWORD_LIFE_TIME.De exemplu se pot forta utilizatorii din porfilul
LIMITED_PROFILE sa isi schimbe parolele la fiecare 30 de zile.

alter profile LIMITED_PROFILE limit


PASSWORD_LIFE_TIME 30;

In acest exemplu, comanda ALTER PROFILE este folosita pentru a modifica


profilul LIMITED_PROFILE.Valoarea lui PASSWORD_LIFE_TIME este 30,
deci user-ii care folosesc acest profil vor trebui sa-si schimbe parola la fiecare
30 de zile.Daca parola a exipirat trebuie schimbata la urmatoarea log-are
exceptand cazul in care profilul are specificate o perioada de gratie pentru
parolele expirate.("PASSWORD_GRACE_TIME")
Un cont expirat este diferit de un cont blocat.Un cont blocat poate fi
automat deblocat intr-un interval de timp.Un cont expirat trebuie reactivat
manual de catre DBA.
Pentru a reactiva un cont expirat trebui executata comanda ALTER
USER
Urmatoarea data cand JANE incearca sa se conecteze la contul sau, cand
introduce parola i se va cere o noua parola pentru cont.

connect jane/eyre
ERROR: ORA-28001: the account has expired

Changing password for jane


Old password:
New password:
Retype new password:
Password changed
Connected.
SQL>

S-ar putea să vă placă și