Administrarea parolelor
Oracle permite controlarea administrarii parolelor utilizatorilor bazei de date. Caracteristicile administrarii parolelor au multe capacitati:
Expira dinainte parole noi
Expira parole dupa o perioada de timp precizata
Permite o perioada de gratie intre expirarea parolei si dezactivarea identificatorului utilizatorului
Impiedica refolosirea unei parole dupa o perioada de timp precizata
Blocheaza si deblocheaza conturile in mod manual
Determina o parola sa indeplineasca anumite cerinte de complexitate
Aceleasi profile pe care le utilizam pentru a limita folosirea resurselor de sistem pot fi folosite pot folosite pentru administrarea parolelor. Profilele contin deja intrari pentru functiile de administrare a parolelor, dar acestea nu sunt activate daca nu rulam un script special: UTLPWDMG.SQL. Pentru a activa trasaturile administrarii parolelor, executam acest script dupa ce ne conectam la baza de date cu identificatorul SYS.
Scriptul are doua componente: prima schimba intrarile corespondente parolelor in profilul DEFAULT si a doua construieste o functie a complexitatii parolelor in baza de date. De asemenea, acest script determina baza de date sa porneasca activitatile de verificare a parolelor in toate profilele.
Administrarea parolelor este independenta de administrarea resurselor
Desi caracteristicile administrarii parolelor sunt controlate de profilele bazei de date, acestea nu sunt activate si dezactivate in acelasi fel in care limitele resurselor sunt controlate de profile. Verificarile limitelor resurselor sunt activate de pornirea bazei de date cu parametrul de initializare RESOURCE_LIMIT sau de folosirea comenzii ALTER_SYSTEM pentru a schimba RESOURCE_LIMIT in TRUE. Verificarea poate fi dezactivata schimband valoarea in FALSE in fisierul parametru sau cu comanda ALTER SYSTEM. Administrarea parolelor este activata ruland scriptul UTLPWDMG.SQL si ramane activa de acum inainte. Valoarea RESOURCE_LIMIT nu are nici un impact asupra activitatilor de verificare a parolelor.
Consideratii pentru administrarea parolelor
POLITICA DE SECURITATE A PAROLELOR presupune crearea unor mecanisme pentru:
blocarea contului utilizatorului ceea ce inseamna ca daca un utilizator, dupa un numar de incercari, nu furnizeaza corect parola, contul acestuia este blocat, adica nu mai are acces la baza de date un anumit timp;
Daca dorim sa folosim diferite reguli de administrare a parolelor pentru diferite categorii de utilizatori, o putem face cu usurinta construind profile diferite pentru fiecare grup si atribuind acestora utilizatorii corespunzatori. Trebuie sa ne asiguram ca orice utilizatori ce raman atribuiti profilului DEFAULT nu vor avea optiuni inadecvate de administrare a parolei definite de acesta. Trebuie sa acordam o atensie deosebita identificatorilor utilizatorilor, SYS si SYSTEM, si altor identificatori folositi de personalul operativ sau de administratorii bazei de date, precum si oricaror identificatori de utilizatori folositi pentru procesarea operatiunilor de grup. Daca optiunile parolei aplicate profilului DEFAULT de catre scriptul UTLPWDMG.SQL nu sunt adecvate pentru acesti utilizatori, ar trebui sa modificam profilul DEFAULT sau sa construim si sa atribuim profile pentru a le controla parolele in functie de anumite necesitati.
Verificarea complexitatii parolelor
Daca dorim sa impunem ca parolele utilizatorilor sa satisfaca anumite reguli, cum ar fi un numar minim de caractere sau cel putin o cifra in parola, trebuie sa folosim o functie PL/SQL pentru a efectua verificarile necesare. Oracle ofera VERIFY_FUNCTION ca functie implicita pentru verificarea complexitatii parolei. Functia returneaza o valoare boolean TRUE daca parola indeplineste toate verificarile, sau se termina cu un mesaj de eroare daca parola nu reuseste o verificare. Functia este creata de scriptul UTLPWDMG.SQL, care de asemenea isi adauga numele la optiunea PASSWORD_VERIFY_FUNCTION in profilul DEFAULT.
Daca dorim sa cream propria functie de verificare a complexitatii parolei, ar trebui sa folosim ca model functia VERIFY_FUNCTION. Putem examina codul functiei interogand vederea dictionarului de date DBA_SOURCE sau, mai simplu, citind scriptul UTLPWDMG.SQL. Putem activa functiile parolei imediat ce acestea sunt create denumindu-le in optiunea PASSWORD_VERIFY_FUNCTION a comenzii CREATE sau ALTER PROFILE. Utilizatorii atribuiti unui profil vor avea orice parole noi verificate de functia proprie.
Putem inlocui functia VERIFY_FUNCTION cu o functie proprie si putem schimba profilul DEFAULT pentru a o identifica in felul urmator:
CREATE FUNCTION my_password_function
(username VARCHAR2, password VARCHAR2,
old_password VARCHAR2) RETURN boolean ISEND;
ALTER PROFILE default
PASSWORD_VERIFY_FUNCTION
my_password_function;
Putem inchide verificarea complexitatii pentru profil:
ALTER PROFILE default PASSWORD_VERIFY_FUNCTION NULL;
Pentru a testa codul intr-o functie de complexitate a parolei, se recomanda construirea si folosirea urmatorului script SQL*Plus:
DECLARE
status BOOLEAN
BEGIN
status
:=function_name
(user, &new_password, &old_password)
END;
Putem apoi executa acest script dintr-o sesiune SQL*Plus oferind numele functiei ce va fi verificata si testand valorile pentru parola noua si cea veche atunci cand ni se va cere. Putem inlocui functia USER cu variabila de substitutie &USER daca dorim de asemenea sa testam functia pe diferiti identificatori de utilizatori. De retinut ca testarea functiei cu acest script va face ca schimbarile parolei sa fie depozitate in baza de date.
Testarea propriilor functii de complexitate a parolei
In cazul functiilor PL/SQL pentru a controla structura si complexitatea parolei, e necesar sa dezvoltam o structura pentru a le testa. Putem crea un identificator de utilizator si un profil pentru dezvoltarea si testarea codului. De asemenea, vom folosi un fisier script care sa contina comanda PL/SQL CREATE OR REPLACE FUNCTION. Se utilizeaza acelasi nume pentru fiecare functie in timp ce este in dezvoltare pentru a nu trebui sa modificam in mod continuu intrarea PASSWORD_VERIFY_FUNCTION a profilului. Cand exista siguranta ca functia lucreaza asa cum dorim, putem copia scriptul de test intr-o locatie de depozitare permanenta, schimbam numele testului intr-un nume de productie, si executam scriptul ca utilizator SYS. Trebuie atentie in special cand construim propriile functii ale parolei pentru a fi folosite cu profilul DEFAULT sau cu alte profile atribuite cheii identificatorilor de utilizatori SYS, SYSTEM sau conturilor DBA.
Reguli la crearea parolelor
Inainte sa incheiem aceasta discutie despre functia de complexitate, ar trebui sa analizam pe scurt functia VERIFY_FUNCTION oferita de Oracle deoarece, daca ii privim codul, doua din verificari pot cauza unele confuzii:
Luam in considerare verificarea pentru a garanta ca exista in parola cel putin unul din cele trei tipuri de caractere (litera, cifra si semn de punctuatie). Codul foloseste variabile de tip sir pentru a pastra caractere valide pentru fiecare tip. Sirul pentru verificarea punctuatiei contine semnele standard cum ar fi punctul, virgula, asteriscul si asa mai departe. Aceasta ne-ar putea face sa credem ca utilizatorii pot acum crea parole cu asemenea caractere. De asemenea, am putea presupune ca oricare din cele trei tipuri de caractere pot fi folosite oriunde intr-o parola. Oricum, parolele trebuie sa fie conforme conventiei standard de denumire pentru obiecte Oracle. Cu alte cuvinte, ale trebuie sa inceapa cu o litera si sa contina numai litere, cifre, sublinieri(_), semnele dolar ($) si diez (#). Pentru a folosi orice alt format sau orice alt semn de punctuatie, utilizatorii trebuie sa includa parolele intre ghilimele (") de fiecare data cand le folosesc.
Cealalta verificare ce induce in eroare compara vechea parola cu cea noua. Intentia acestei verificari este de a asigura faptul ca acestea difera dupa un anumit numar de caractere. Putem executa functia VERIFY_FUNCTION in mod direct, oferind valorile pentru numele utilizatorului si parola noua si cea veche, pentru a confirma ca aceasta verificare lucreaza asa cum este documentata in script.
Totusi, daca privim cu atentie codul, observam ca aceasta verificare nu este efectuata daca valoarea de intrare pentru vechea parola este un tir cu lungimea zero. Din nefericire, cand functia este executata ca parte a comenzii de schimbare a parolei (ALTER USER user_name IDENTIFIED BY password), Oracle nu ofera vechea parola deoarece nu o cunoaste. Parolele nu sunt stocate direct in baza de date, ci printr-un algoritm de criptare cu un singur sens, ceea ce inseamna ca parola curenta nu poate fi extrasa din versiunea criptata. Valoarea pentru vechea parola este prin urmare intotdeauna trimisa functiei ca un sir gol.
Desigur, rezultatul final este acela ca functia nu poate impiedica refolosirea aceleiasi parole sau a unei parole asemanatoare. Putem anula o parte a acestei limitari folosind optiunea PASSWORD _REUSE_MAX. Aceasta poate impiedica folosirea aceleiasi parole de doua ori intr-un rand, sau chiar poate impiedica refolosirea acesteie pana cand un numar definit de parole diferite a fost folosit. In mod curent, nu exista nici o modalitate pentru a impiedica pentru a impiedica folosirea parolelor asemanatoare in mod imediat, una dupa cealalta. In plus, nu putem scrie coduri pentru oricare din propriile rutine ce depind de valoarea parolei vechi si nu le putem face sa lucreze in exterior pentru a testa mediul.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |