Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Administrarea profilelor
Obiective
Crearea si asignarea de profile utilizatorilor
Controlul folosirii resurselor folosind profile
Modificarea si eliminarea profilelor
Administrarea parolelor folosind profile
Obtinerea de informatii despre profile, limite asignate si administrarea parolelor
Sint multimi denumite de limitari impuse utilizarii resurselor si parolelor
Sint asignate utilizatorilor prin comenzi CREATE/ALTER USER
Pot fi activate sau dezactivate
Pot limita utilizarea resurselor la nivel de sesiune sau la nivel de apel
Un profil este un set denumit de limitari impuse utilizarii resurselor de sistem si parolelor, cum ar fi:
timpul CPU
operatiile I/O
timpul de inactivitate in cadrul unei sesiuni (idle time)
timpul de conectare
spatiul de memorie
sesiuni concurente
durata de viata a parolelor
istoric al parolelor
verificarea complexitatii parolelor
blocarea conturilor
Dupa ce un profil a fost creat, DBA-ul il poate asigna fiecarui utilizator. Daca limitarile de resurse sint activate, serverul Oracle limiteaza folosirea bazei de date si a resurselor de catre un utilizator conform cu profilul asignat acestuia.
Serverul Oracle creeaza automat un profil DEFAULT atunci cind este creata baza de date.
Utilizatorilor carora nu li s-a asignat in mod explicit un profil le sint impuse limitarile profilului DEFAULT. Folosirea resurselor este permisa in mod nelimitat la crearea acestui profil. DBA-ul poate schimba valorile acestor limitari asa incit ele vor fi impuse in mod implicit tuturor utilizatorilor.
Limitarile profilelor pot fi impuse la nivel de sesiune, la nivel de apel sau la ambele niveluri.
Limitarile la nivel de sesiune sint impuse pentru fiecare conexiune.
Cind o limita la nivel de sesiune este depasita
se returneaza un mesaj de eroare ;
serverul Oracle deconecteaza utilizatorul respectiv.
Limitarile la nivel de apel sint impuse pentru fiecare apel executat in timpul executiei unei instructiuni SQL.
Cind o limita la nivel de apel este depasita
procesarea instructiunii este oprita ;
se executa rollback pentru instructiunea respectiva ;
efectele instructiunilor anterioare se pastreaza ;
sesiunea utilizatorului ramine conectata.
Impiedica utilizatorii sa indeplineasca anumite operatii care ar necesita un consum mare de resurse
Asigura ca utilizatorii ale caror sesiuni sint inactive pentru o anumita perioada sint deconectati
Permit limitari asupra unor grupe de resurse pentru utilizatori asemanatori
Permit asignarea usoara de limitari in folosirea resurselor utilizatorilor
Administreaza utilizarea resurselor in sisteme mari, complexe
Controleaza utilizarea parolelor
Pasii de urmat pentru controlul utilizarii resurselor folosind profilele:
Creati un profil folosind comanda CREATE PROFILE pentru a determina limitarile impuse folosirii resurselor si parolelor.
Asignati profile prin comenzile CREATE USER sau ALTER USER.
Impuneti activarea controlului utilizarii resurselor prin comanda ALTER SYSTEM sau prin editarea fisierului de parametri de initializare, oprirea instantei si repornirea ei.
CREATE PROFILE developer_prof LIMIT
SESSIONS_PER_USER 2
CPU_PER_SESSION 10000
IDLE_TIME 60
CONNECT_TIME 480 ;
Sintaxa comenzii:
CREATE PROFILE profile LIMIT
[ SESSIONS_PER_USER max_value ]
[ CPU_PER_SESSION max_value ]
[ CPU_PER_CALL max_value ]
[ CONNECT_TIME max_value ]
[ IDLE_TIME max_value ]
[ LOGICAL_READS_PER_SESSION max_value ]
[ LOGICAL_READS_PER_CALL max_value ]
[ COMPOSITE_LIMIT max_value ]
[ PRIVATE_SGA max_bytes ]
max_value :==
max_bytes :==
unde
profile
este numele profilului
un utilizator caruia ii este asignat acest profil poate folosi o cantitate nelimitata din aceasta resursa
valoarea acestei limitari este valoarea limitarii din profilul DEFAULT
limiteaza costul total al resurselor pentru o sesiune, cost exprimat in unitati de serviciu. Oracle calculeaza costul de resurse ca pe o suma ponderata a costurilor pentru:
CPU_PER_SESSION
CONNECT_TIME
LOGICAL_READS_PER_SESSION
PRIVATE_SGA
Nota:
View-ul dictionarului de date RESOURCE_COST furnizeaza ponderile asignate diferitelor resurse.
Resursa |
Descriere |
CPU_PER_SESSION |
Timpul total CPU masurat in miimi de secunda |
SESSIONS_PER_USER |
Numarul de sesiuni concurente permise unui utilizator |
CONNECT_TIME |
Durata maxima a unei sesiuni masurata in minute |
IDLE_TIME |
Durata maxima a unei perioade de inactivitate masurata in minute |
LOGICAL_READS_PER_SESSION |
Numarul de blocuri de date (citiri fizice si logice) |
PRIVATE_SGA |
Spatiul privat in SGA masurat in octeti (numai pentru Serverul Oracle multifilar) |
Resursa |
Descriere |
CPU_PER_CALL |
Timpul CPU per apel masurat in miimi de secunda |
LOGICAL_READS_PER_CALL |
Numarul de blocuri de date |
IDLE_TIME este calculat numai pentru procesul server. Nu este luata in calcul activitatea aplicatiei.
LOGICAL_READS_PER_SESSION este o limitare a numarului de citiri atit din memorie cit si de pe disc. Aceasta ar putea fi necesara pentru a asigura ca o instructiune I/O intensiva nu va monopoliza memoria si accesul la disc.
CREATE USER user3 IDENTIFIED BY user3
DEFAULT TABLESPACE data01
TEMPORARY TABLESPACE temp
QUOTA UNLIMITTED ON data01
PROFILE developer_prof ;
ALTER USER scott
PROFILE developer_prof ;
Se face folosind comanda CREATE USER sau comanda ALTER USER. Un utilizator poate avea asignat un singur profil la un moment dat.
Asignarea profilelor nu afecteaza sesiunea curenta.
Profilele pot fi asignate numai utilizatorilor, nu rolulilor sau altor profile.
Daca nu se asigneaza un profil atunci cind este creat un utilizator, acestuia i se asigneaza implicit profilul DEFAULT.
Setati parametrul de initializare RESOURCE_LIMIT true
sau
Impuneti limitarea folosirii resurselor prin comanda ALTER SYSTEM
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE ;
Permite activarea sau dezactivarea limitarii resurselor pentru o instanta.
Setarea precizata ramine in vigoare pina cind este din nou modificata sau pina cind instanta este oprita.
Sintaxa comenzii ALTER PROFILE
ALTER PROFILE profile LIMIT
[ SESSIONS_PER_USER max_value ]
[ CPU_PER_SESSION max_value ]
[ CPU_PER_CALL max_value ]
[ CONNECT_TIME max_value ]
[ IDLE_TIME max_value ]
[ LOGICAL_READS_PER_SESSION max_value ]
[ LOGICAL_READS_PER_CALL max_value ]
[ COMPOSITE_LIMIT max_value ]
[ PRIVATE_SGA max_bytes ]
Observatie
Modificarile unui profil nu afecteaza sesiunea curenta. Ele intra in vigoare numai pentru sesiunile ulterioare.
Sintaxa comenzii DROP PROFILE
DROP PROFILE profile [CASCADE] ;
unde
profile
este numele profilului de eliminat
CASCADE
revoca profilul de la utilizatorii carora le este asignat (serverul Oracle asigneaza automat profilul DEFAULT acestor utilizatori. Specificati aceasta optiune pentru a elimina un profil care este asignat unor utilizatori.)
Observatii:
profilul DEFAULT nu poate fi eliminat.
odata un profil eliminat, schimbarea se aplica numai sesiunilor ulterioare si nu celei curente.
profile <----- ----- ------> profile
username resource_name
resource_type (KERNEL)
limit
SQL> SELECT p.profile, p.resource_name, p.limit
FROM dba_profiles p, dba_users u
WHERE p.profile = u.profile AND username = 'SCOTT' ;
PROFILE RESOURCE_NAME LIMIT
DEFAULT COMPOSITE_LIMIT UNLIMITED
DEFAULT SESSIONS_PER_USER UNLIMITED
DEFAULT CPU_PER_SESSION UNLIMITED
DEFAULT CPU_PER_CALL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL UNLIMITED
DEFAULT IDLE_TIME UNLIMITED
DEFAULT CONNECT_TIME UNLIMITED
DEFAULT PRIVATE_SGA UNLIMITED
9 rows selected.
Pentru un control marit al securitatii bazei de date, administrarea parolelor este controlata de DBA prin intermediul profilelor.
In continuare sint descrise modalitatile prin care se realizeaza administrarea parolelor:
Blocarea conturilor: permite blocarea automata a unui cont atunci cind un utilizator nu reuseste sa se conecteze la sistem dupa un numar precizat de incercari.
Durata de viata si expirarea parolelor: permite ca parolele sa aiba o durata de viata dupa trecerea careia expira si trebuie schimbate.
Istoric al parolelor: verifica parola pentru a se asigura ca nu este refolosita inainte de trecerea unei durate de timp specificata sau de un numar de ori mai mare decit cel specificat.
Verificarea complexitatii parolelor: pentru a stabili daca este suficient de complexa pentru a oferi protectie impotriva incercarilor de patrundere neautorizata in sistem.
Se pune la punct administrarea parolelor folosind profile si asignindu-le utilizatorilor.
Prin comenzile CREATE USER sau ALTER USER conturile pot fi blocate, deblocate sau pot fi facute sa expire.
Limitarile asupra parolelor sint intotdeauna impuse chiar daca parametrul RESOURCE_LIMIT pentru instanta este FALSE.
CREATE PROFILE profile LIMIT
[ FAILED_LOGIN_ATTEMPTS maxvalue ]
[ PASSWORD_LIFE_TIME maxvalue ]
[ maxvalue ]
[ PASSWORD_LOCK_TIME maxvalue ]
[ PASSWORD_GRACE_TIME maxvalue ]
[ PASSWORD_VERIFY_FUNCTION
Parametru |
Descriere |
FAILED_LOGIN_ATTEMPTS |
Numarul de incercari de logare esuate dupa care se trece la blocarea contului |
PASSWORD_LOCK_TIME |
Numarul de zile pentru care contul ramine blocat |
PASSWORD_LIFE_TIME |
Durata de viata a unei parole in zile |
PASSWORD_GRACE_TIME |
Perioada de gratie (masurata in zile) pentru schimbarea parolei dupa primul login cu succes dupa expirarea parolei. |
PASSWORD_REUSE_TIME |
Numarul de zile dupa care o parola poate fi refolosita. |
PASSWORD_REUSE_MAX |
Numarul maxim de cite ori o parola poate fi refolosita. |
PASSWORD_VERIFY_FUNCTION |
O functie PL/SQL care face verificarea parolei inainte ca aceasta sa fie asignata. |
Serverul Oracle blocheaza automat un cont dupa ce valoarea FAILED_LOGIN_ATTEMPTS este atinsa. Contul este fie automat deblocat dupa un timp specificat (PASSWORD_LOCK_TIME) fie este deblocat de DBA folosind comanda ALTER USER.
Parametrul PASSWORD_LIFE_TIME specifica durata de viata a parolei, dupa care ea trebuie schimbata.
DBA-ul poate specifica o perioada de gratie (PASSWORD_GRACE_TIME) care incepe dupa primul login reusit dupa expirarea parolei. In aceasta perioada de gratie parola ar trebui schimbata, altfel, dupa expirarea ei, contul este blocat.
Starea contului utilizatorului devine EXPIRATA setind in mod explicit parola ca fiind expirata. Adica, atunci cind utilizatorul se conecteaza, contul lui intra in perioada de gratie. Aceasta este util d.ex. atunci cind se creeaza noi utilizatori.
Mecanismul de istoric al parolelor se asigura ca un utilizator nu poate folosi o parola intr-un anumit interval de timp specificat. Aceste verificari se implementeaza folosind unul din parametrii PASSWORD_REUSE_MAX sau PASSWORD_REUSE_TIME. Cind unul dintre parametri este setat pe o valoare alta decit DEFAULT sau UNLIMITTED, celalalt trebui sa fie setat UNLIMITTED.
Functii furnizate de utilizatori pentru verificarea parolelor
Ele trebuie create in schema lui SYS si trebuie sa aiba urmatoarea specificatie:
function_name(
userid_parameter IN VARCHAR2(30),
password_parameter IN VARCHAR2(30),
old_password_parameter IN VARCHAR2(30))
RETURN BOOLEAN
Cind o noua functie de verificare a parolei este adaugata, DBA-ul trebuie sa aiba in vedere urmatoarele restrictii:
Procedura trebuie sa aiba specificatia de mai sus.
Trebuie sa intoarca TRUE pentru succes si FALSE pentru esec.
Daca in functia de verificare a parolei este invocata o execeptie, se returneaza o eroare si comanda ALTER USER sau CREATE USER este terminata.
Functia de verificare a parolei este detinuta de SYS.
Daca functia de verificare a parolei devine invalida, este returnat un mesaj de eroare si comanda ALTER USER sau CREATE USER este terminata.
VERIFY_FUNCTION
Lungimea minima este de patru caractere
Parolele nu trebuie sa coincida cu numele utilizatorilor
Parolele trebuie sa contina macar un caracter alfabetic, unul numeric si unul special
Parolele trebuie sa difere de parolele anterioare prin macar trei litere
Oracle ofera o functie de verificare a complexitatii parolelor, o functie standard PL/SQL denumita VERIFY_FUNCTION si care este creata prin rularea scriptului utlpwdmg.sql in schema lui SYS.
Ca urmare a executiei scriptului utlpwdmg.sql este creata aceasta functie si este modificat profilul DEFAULT prin urmatoarea comanda
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 600
PASSWORD_GRACE_TIME 10
PASSWORD_REUSE_TIME 1800
PASSWORD_REUSE_MAX UNLIMITTED
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function ;
profile <----- ----- ----- ----- -----> profile
username resource_name
account_status resource_type (PASSWORD)
lock_date limit
expiry_date
Context |
Referinta |
Parametri de initializare |
RESOURCE_LIMIT |
View-uri ale dictionarului de date |
DBA_PROFILES DBA_USERS |
Comenzi |
CREATE PROFILE ALTER PROFILE DROP PROFILE CREATE USER ALTER USER |
Functii si proceduri de stocare |
VERIFY_FUNCTION |
Copyright © 2024 - Toate drepturile rezervate