Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Securitate si integritate in bazele de date

sql


Securitate si integritate

Integritate

Integritatea bazelor de date se refera la corectitudinea informatiilor si presupune detectarea, corectarea si prevenirea diferitelor erori care pot afecta datele introduse īn bazele de date. Cand facem referiri la integritatea datelor, īntelegem ca datele sunt consistente relativ la toate restrictiile formulate anterior (care se aplica datelor respective) si ca urmare a acestui fapt, datele sunt considerate valide 10310w222k .



Conditiile de integritate numite si reguli sau restrictii de integritate nu permit introducerea in baza de date a unor date aberante si sunt exprimate prin conditii puse asupra datelor.

In general sunt acceptate mai multe criterii de clasificare a regulilor de integritate.

O serie de conditii sunt de tip structural, legate de anumite egalitati intre valori, si exprimate prin dependente functionale sau prin declararea unor campuri cu valori unice (de cele mai multe ori aceste campuri sunt chei).

O alta serie de conditii se clasifica dupa unitatea la care se aplica restrictia si, in acest caz, exista restrictii pe domenii (ce privesc anumite valori pentru atribute) sau restrictii pe tabele (relatii). Restrictiile pe tabele pot fi unituplu (se refera la fiecare tuplu in parte) sau multituplu (se refera la combinatii de mai multe tupluri).

O restrictie de integritate de relatie unituplu impune ca in fiecare tuplu al unei relatii de baza, in campurile corespunzatoare cheii primare, sa apara valori diferite de valorile nule corespunzatoare. Aceasta regula se mai poate enunta si sub forma: "intr-o baza de date relationala nu se inregistreaza nici o informatie despre ceva ce nu poate fi identificat."

Un exemplu de restrictie de integritate de relatie de tip multituplu este restrictia referentiala care se exprima prin conditia ca, pentru cheile externe, daca nu sunt nule, sa se admita valori corespunzatoare uneia din cheile primare existente in relatia referita. Verificarea acestei conditii are loc de cate ori se insereaza un nou tuplu ce contine o cheie externa sau se modifica valoarea unei chei externe a unui tuplu, semnalandu-se eventualele neconcordante si anuland modificarile. Verificarea unicitatii cheii primare si restrictiile rezultate din dependentele functionale si multivaloare sunt alte exemple de acelasi tip.

Un alt criteriu de clasificare este acela prin care se deosebesc regulile de integritate ce se refera la diferitele stari ale bazei de date de regulile ce se refera la tranzitia dintr-o stare in alta.

Restrictiile pot fi clasificate si din punct de vedere al momentului in care se aplica ele, astfel avem reguli imediate (ce se verifica in momentul in care se efectueaza operatia indicata) sau reguli amanate (ce se verifica numai dupa ce au fost executate si alte operatii asociate dar inainte de a se modifica baza de date).

In functie de aria de aplicare, restrictiile pot fi impartite in restrictii generale, aplicabile tuturor relatiilor din baza de date si restrictii particulare, care se pot aplica numai la anumite relatii.

Regulile de integritate se aplica relatiilor de baza in care sunt reprezentate efectiv datele bazei de date. Dintre regulile generale cel mai des folosite in modelul relational sunt regulile ce privesc cheile primare (vezi unicitatea valorilor cheilor primare in cadrul relatiei) si cheile externe.

Analizam in continuare cateva tipuri de restrictii de integritate.

Restrictii pentru integritatea entitatii

Enunt: Intr-o relatie de baza nici un atribut al unei chei primare nu poate avea valori nule.

Deja cunoastem ca se cere (in multe situatii) ca valorile cheilor primare sa fie unice. In majoritatea SGBD unicitatea cheii primare si integritatea entitatii sunt conditii obligatorii.

Restrictii pentru integritatea referentiala

Enunt: Daca exista o cheie externa intr-o relatie, ori valoarea cheii externe trebuie sa se potriveasca cu valoarea unei chei candidat a vreunui tuplu in relatia de origine, ori valoarea cheii externe trebuie sa fie nula.

Cu late cuvinte, daca o valoare exista intr-o relatie pe post de cheie externa, ori ea trebuie sa se potriveasca cu valoarea unei chei primare dintr-o alta relatie ori sa fie nula.

Probleme serioase apar in momentul cand sunt de efectuat modificari sau stergeri de valori ale cheilor primare.

Daca se actualizeaza o cheie primara sau se sterge intregul tuplu si daca

valoarea cheii primare nu apare nicaieri ca si cheie externa

atunci se permite efectuarea operatiei

valoarea cheii primare apare in alta parte ca si cheie externa

atunci

nu se permite efectuarea operatiei

se permite efectuarea operatiei dar de asemenea se seteaza aparitiile cheii externe la valorile nule sau o valoare implicita (daca s-a specificat vreuna)

se permite efectuarea operatiei dar de asemenea

in cazul actualizarii - se propaga valoarea schimbata la aparitiile cheii externe unde cheia externa este o parte a cheii primare a relatiei si, de asemenea, se propaga schimbarile acolo unde aceasta din urma cheie primara este cheie externa intr-o alta relatie

in cazul stergerilor - se propaga stergerea , adica se sterg tuplele care au valori ale cheii externe care se potrivesc cu cheia primara

se intra in dialog cu utilizatorul

Toate acestea sunt reguli generale care, dupa caz, pot suferi mici transformari, in functie de aplicatia concreta.

Situatiile descrise mai sus pot fi rezolvate in cadrul aplicatiei sau se pot include in SGBD utilizand mecanismul trigger-elor. Mai multe SGBD permit sa se creeze si sa se memoreze proceduri referitoare la baza de date si aceste proceduri pot fi invocate cand au loc anumite evenimente, cum ar fi actualizari si stergeri ale unor atribute.

Standardul SQL furnizeaza controale pentru integritatea referentiala in declaratiile de creare a tabelelor.

Restrictiile de domeniu

Aceste restrictii sunt intotdeauna restrictii de stare imediate. Aceste restrictii se pot referi la tipul de date pentru un atribut, la o lista de valori posibile, la un ordin de marime, la un format sau o forma, la o conditie exprimata cu o formula logica sau la o procedura care este apelata de cate ori are loc o modificare pentru domeniul specificat.

Exemplu: Restrictiile de domeniu referitoare la o data calendaristica pot fi exprimate (eventual) in felul urmator:

create domain ZI char(2)

check is_integer(ZI) and num(ZI) >= 1 and num(ZI) <= 31;

create domain LUNA char(2)

check is_integer(LUNA) and num(LUNA) >= 1 and num(LUNA) <= 12;

create domain AN char(2)

check is_integer(AN) and num(AN) >= 0 and num(AN) <= 99;

create domain DATA(ZZ domain(ZI), LL domain(LUNA), AA domain(AN))

check if num(LL) in (1,3,5,7,8,10,12) then num(ZZ) < 31;

check if num(LL) in (4,6,9,11) then num(ZZ) < 30;

check if num(LL) = 2 and mod(num(AA),4) = 0 and

mod(num(AA),100) <> 0 then num(ZZ) < 29;

check if num(LL) = 2 and mod(num(AA),4) <> 0

then num(ZZ) < 28;

Restrictiile de integritate pot fi exprimate prin intermediul limbajului de prelucrare a datelor sub forma unei egalitati sau ca o relatie intre rezultatele a doua cereri.

Integritatea datelor este strans corelata cu securitatea datelor unei baze de date.

Daca se definesc controalele de securitate in absenta celor de integritate, validitatea si consistenta datelor se bazeaza exclusiv pe utilizarea corecta si de buna credinta a sistemului de catre utilizatorii autorizati. Daca insa se definesc numai controale de integritate, datele au sansa sa fie consistente dar sunt susceptibile la pericolele care provin din lipsa securitatii.

Este important de mentionat aici ca restrictiile de integritate nu garanteaza corectitudinea datelor. Aceasta deoarece este aproape imposibil (in multe situatii) ca verificarea corectitudinii sa fie realizata automat.

Exemplu: Nu se poate verifica automat daca numele unei persoane este "Pop" sau "Popa", cum nu se poate verifica automat daca data nasterii este "10.01.2001" sau "01.01.2001", etc.

Pentru a asigura un grad multumitor de integritate a datelor trebuie prevazute restrictii de integritate in asociere cu principalele momente in care datele respective sunt manipulate, cum ar fi: introducerea, actualizarea si stergerea. Acestea sunt operatii susceptibile de introducerea de date inconsistente in baza de date.

Restrictiile de integritate pot fi memorate in multe cazuri chiar in SGBD, dar gradul in care acest lucru este posibil depinde de SGBD.

Asociata cu integritatea datelor este si protectia datelor impotriva unor evenimente de avarie cum ar fi caderea sistemului cauzata de defectarea unor componente hardware sau software.

Pierderea accidentala de consistenta a datelor poate rezulta din:

-incidente ce apar pe parcursul executarii tranzactiilor,

-anomalii datorate accesului concurent la baza de date,

-anomalii datorate lucrului cu date distribuite pe mai multe calculatoare intr-o retea,

-erori logice care apar din programele utilizator,

si altele.

Pentru reconstituirea bazelor de date in cazul cand pot sa apara inconsistente in general, majoritatea bazelor de date se copiaza periodic pe medii magnetice ce se pastreaza in locuri sigure. De asemenea se tine o evidenta a tuturor transformarilor efectuate in baza de date de cand s-a efectuat ultima copie. Fisierul care contine aceste modificari se numeste jurnal. Fiecare inregistrare din jurnal contine un identificator al programului care a facut modificarea, fosta valoare si noua valoare introdusa pentru un element. Tot in jurnal se mai pastreaza diferitele momente importante din desfasurarea programelor (inceput, sfarsit, terminarea unor operatii, etc.). Toate mecanismele mentionate in acest paragraf sunt caracteristice lucrului cu tranzactii. La terminarea unei tranzactii, indiferent daca ea s-a incheiat normal sau prin eroare, baza de date trebuie sa aiba acelasi grad de integritate ca la momentul inceperii executiei tranzactiei respective.

Se spune despre o tranzactie ca este comisa daca au fost terminate toate calculele produse de ea in aria de lucru si s-a facut o copie a rezultatelor ei in jurnal. Aparitia unor caderi dupa ce o tranzactie a fost comisa nu afecteaza continutul bazei de date deoarece se poate reconstitui baza de date cu ajutorul ultimei copii si a jurnalului in care se gasesc toate rezultatele tranzactiilor comise. Modificarile tranzactiilor abandonate sau necomise nu sunt luate in considerare la parcurgerea jurnalului pentru restaurarea bazei de date.

Se defineste strategia de comitere in doua faze astfel: o tranzactie poate sa scrie intr-o baza de date numai dupa ce a fost comisa si o tranzactie poate fi comisa numai dupa ce a inregistrat in jurnal toate schimbarile de elemente produse de ea.

8.2. Securitate

Prin securitatea bazelor de date se intelege protejarea bazelor de date impotriva folosirii neautorizate a lor si in special a modificarilor si distrugerilor nedorite de date si a citirilor nepermise de date. Pentru realizarea securitatii datelor din baza de date se utilizeaza controale tehnice si administrative.

Securitatea este in general asociata cu urmatoarele situatii:

-acces fraudulos la date,

-pierderea confidentialitatii (secretului) datelor,

-pierderea caracterului privat al datelor,

-pierderea integritatii datelor,

-pierderea disponibilitatii datelor

Este mai dificila protejarea datelor impotriva accesului rauvoitor, intentionat. Se recunoaste ca de fapt nu exista protectie absolut sigura ci doar protectii si masuri de securitate mai eficiente sau mai putin eficiente.

Forme de acces intentionat si rauvoitor la datele unei baze de date:

-citire neautorizata a unor date,

-modificari neutorizate de date,

-distrugeri de date.

Notiunea de securitate a bazei de date este de obicei asociata cu accesul rauvoitor, pe cand integritatea se refera la evitarea pierdelor accidentale de consistenta. Adevarul este insa undeva la mijloc.

Pentru protectia bazei de date se pot lua masuri de asigurare a securitatii la mai multe nivele:

-la nivel fizic - locurile in care se afla calculatoarele trebuie protejate de accesul persoanelor neautorizate;

-la nivel uman - este recomandabil sa se acorde autorizatiile de acces cu multa grija si sa se tina evidente stricte ale persoanelor autorizate

-la nivel sistem de operare - slabiciunile protectiei la nivel de sistem de operare trebuie eliminate sau compensate de alte masuri

-la nivel SGBD - sistemul ofera anumite facilitati care sprijina protectia datelor

Tehnici de asigurare a securitatii datelor:

Identificarea utilizatorilor.

Fiecarui utilizator in parte i se acorda anumite drepturi de operare pe diferite portiuni din baza de date la diferite nivele cum ar fi relatia, inregistrarea, pagina, atributul, etc. Drepturile se refera la posibilitatea citirii, inserarii, stergerii sau modificarii datelor respective. Identificarea se face de obicei prin parole stabilite fie de administratorul bazei de date fie de utilizator.

Protejarea datelor prin codificare (criptare).

Deoarece s-ar putea ajunge la date si prin alte mijloace decat prin intermediul SGBD-ului (de exemplu prin citirea directa a mediului magnetic) se poate face o protectie prin pastrarea codificata a datelor pe mediul magnetic. Decodificarea datelor se poate face numai dupa identificarea utilizatorului prin garzi asociate lui.

Utilizarea view-urilor in aplicatii.

Abilitatea view-urilor de a "ascunde" o parte din informatiile din baza de date poate fi utilizata si pentru stabilirea unui anumit grad de securitate a datelor. Astfel se poate vorbi de acces la nivel de relatie (tabela) sau acces la nivel de view.

In unele sisteme nu sunt acceptate modificari prin intermediul view-urilor. Astfel de view-uri se numesc read-only (numai pentru citire) si sunt utilizate mai ales in aplicatiile in care datele pot fi citite de toti utilizatorii (baze de date publice) dar modificarile se fac numai cu aprobarea administratorului/proprietarului bazei de date.

Modificarile din view-uri nu sunt in general admise deoarece pot duce la efecte laterale ce privesc parti din baza de date ce nu apar in view-uri. De exemplu stergerea unui element din view poate sa duca la eliminarea unui alt element care are singura legatura cu elemntul sters si care nu se afla in view.

Administrarea si transmiterea drepturilor.

Se tine evidenta stricta a drepturilor de acces ale fiecarui utilizator la portiuni din baza de date si se fixeaza reguli de transmitere de la un utilizator la altul a dreptului de acces.

Forme de autorizare:

-autorizare la citire (consultare)

-autorizare la inserare (adaugare)

-autorizare la actualizare (care exclude stergerile)

-autorizare la stergeri (la nivel de tuplu)

In situatiile de mai sus nu se pune problema modificarilor la nivel de schema a bazei de date.

Daca consideram si acest aspect putem vorbi de:

-autorizare la nivel de index (creare-stergere de indexi)

-autorizare la nivel de relatii (creare)

-autorizare de modificari la nivel de relatii (stergeri sau adaugari de atribute in cadrul relatiilor)

-autorizari de stergeri ale relatiilor

Diferitele protectii pot fi indicate prin intermediul limbajului de prelucrare a datelor. Portiunile din baza de date ce pot fi folosite de utilizator pot fi definite prin operatii de selectie si proiectie care fac invizibile alte portiuni ale bazei de date.

Conducerea organizatiei, care este proprietara bazei de date, trebuie sa ia masuri de securitate care reduc riscul de a se pierde informatii sau de a se distruge informatii. Prin pierdere de informatii se poate intelege ca se pierde caracterul privat al informatiilor, ele devin accesibile unui grup mai mare de persoane decat cel prevazut. Nu intotdeauna "scurgerile" de informatii lasa urme, deci nu se materializeaza intotdeauna in schimbari detectabile la nivelul bazei de date.

Problema securitatii cuprinde aspecte legale, sociale si etice, aspecte privind controlul fizic (paza si posibilitati de blocarea accesului la terminale), aspecte de politie (fixarea conditiilor de acces), aspecte operationale (modul de stabilire a parolelor), aspecte privind controlul hard (modul de acces hard la diferite componente), securitatea sistemului de operare (protejarea informatiilor si anularea rezultatelor intermediare pentru pastrarea secretului datelor) aspecte privind notiunea de proprietate asupra datelor din baza de date si altele asemanatoare.

Trebuie sa mentionam aici ca furturile si fraudele nu sunt neaparat legate de baza de date, ele sunt un factor de risc pentru intreaga organizatie, gravitatea acestor fapte depinzand si de profilul organizatiei in cauza.

In Comunitatea Europeana exista o preocupare serioasa legata de actualizarea legislatiei la noile nevoi generate de utilizarea intensiva a calculatoarelor. Se incearca in principal sa se adopte legi care sa protejeze persoana sau organizatia si sa tina seama de nevoia ca anumite informatii sa aiba caracter privat, deci sa nu fie accesibile publicului larg sau nici macar unui grup relativ restrans, daca acest fapt ar dauna proprietarului informatiilor respective. Putem enumera aici o paleta larga de domenii care lucreaza cu informatii al caror caracter privat trebuie neaparat pastrat: domeniul bancar, domeniul medical, evidente administrativ-financiare, domeniul productiei in majoritatea firmelor de marca, etc.

Inrebari recapitulative.

Care sunt restrictiile de integritate?

Ce īnseamna integritatea entitatii?

Ce īnseamna integritatea referentiala?

Ce īnseamna restrictiile de domeniu?

Care este deosebirea īntre integritate si securitate?

Cum poate fi īncalcata securitatea datelor īntr-o baza de date ?

Enumerati masuri de protectie pentru asigurerea securitatii datelor.

Enumerati forme de autorizare.

Raspunsuri la īntrebari.

Restrictiile de integritate

- integritatea entitatii

- integritatea referentiala

restrictiile de domeniu

restrictiile de intreprindere

Intr-o relatie de baza nici un atribut al unei chei primare nu poate avea valori nule.

Daca exista o cheie externa intr-o relatie, ori valoarea cheii externe trebuie sa se potriveasca cu valoarea unei chei candidat a vreunui tuplu īn relatia de origine, ori valoarea cheii externe trebuie sa fie nula.

Aceste restrictii se pot referi la tipul de date pentru un atribut, la o lista de valori posibile, la un ordin de marime, la un format sau o forma, la o conditie exprimata cu o formula logica sau la o procedura care este apelata de cate ori are loc o modificare pentru domeniul specificat.

Notiunea de securitate a bazei de date este de obicei asociata cu accesul rauvoitor, pe cand integritatea se refera la evitarea pierdelor accidentale de consistenta

6) Securitatea este in general asociata cu urmatoarele situatii:

-acces fraudulos la date,

-pierderea confidentialitatii (secretului) datelor,

-pierderea caracterului privat al datelor,

-pierderea disponibilitatii datelor.

7) Pentru protectia bazei de date se pot lua masuri de asigurare a securitatii la mai multe nivele:

-la nivel fizic - locurile īn care se afla calculatoarele trebuie protejate de accesul persoanelor neautorizate;

-la nivel uman - este recomandabil sa se acorde autorizatiile de acces cu multa grija si sa se tina evidente stricte ale persoanelor autorizate

-la nivel sistem de operare - slabiciunile protectiei la nivel de sistem de operare trebuie eliminate sau compensate de alte masuri

-la nivel SGBD - sistemul ofera anumite facilitati care sprijina protectia datelor.

8) Forme de autorizare:

-autorizare la citire (consultare)

-autorizare la inserare (adaugare)

-autorizare la actualizare (care exclude stergerile)

-autorizare la stergeri (la nivel de tuplu)

In situatiile de mai sus nu se pune problema modificarilor la nivel de schema a bazei de date.

Daca consideram si acest aspect putem vorbi de:

-autorizare la nivel de index (creare-stergere de indecsi)

-autorizare la nivel de relatii (creare)

-autorizare de modificari la nivel de relatii (stergeri sau adaugari de atribute īn cadrul relatiilor)

-autorizari de stergeri ale relatiilor.


Document Info


Accesari: 12643
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )