downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

Conectarea la baza de date> <Securitatea Bazelor de Date
[edit] Last updated: Wed, 19 Jun 2013

view this page in

Designul bazelor de date

Primul pas este întotdeauna crearea bazei de date, doar dacă nu doriți să utilizați o bază de date creată de altcineva. Când o bază de date este creată, ea este desemnată unui anume utilizator, care a executat comanda de creare. În general, numai proprietarul (sau superuserul) pot face orice cu obiectele din acea bază de date, iar pentru a lăsa și alți utilizatori să o folosească, ei trebuie să aibă privilegii.

Aplicațiile pe care le construiți nu ar trebui să se conecteze niciodată la o bază de date cu privilegii de administrator sau superuser, pentru că acești utilizatori pot executa orice fel de query, de exemplu, modificarea schemei (ștergerea tabelelor) sau ștergerea întregului conținut.

Puteți crea diferiți utilizatori de baze de date pentru fiecare aspect al aplicației, cu drepturi la obiectele bazei strict delimitate. Se pot da numai privilegiile strict necesare, și evitați ca același user să interacționeze cu mai multe baze de date. Aceasta înseamnă că dacă un intrus va căpăta acces la baza de date din numele aplicației dumneavoastră, acesta va putea face doar operațiunile, pe care le poate face aplicația dumneavoastră.

Se recomandă să nu implementați toată business-logica în aplicația web (de ex. în script-ul dumneavoastră). În loc, realizați aceasta în schema bazei de date utilizând viziuni, trigger-e sau reguli. Dacă sistemul va evolua, va apărea necesitatea de a deschide noi porturi la baza de date și va trebui să reimplementați logica separat în fiecare client al bazei de date. Or, trigger-e pot fi utilizate pentru a manipula câmpuri în mod transparent și automat, ceea ce deseori vă ajută la depistarea problemelor în aplicație, sau la regăsirea tranzacțiilor.



add a note add a note User Contributed Notes Designul bazelor de date - [1 notes]
up
-8
Chris Travers
10 months ago
Never say never.  There are cases where you want to connect with the ability to run arbitrary queries, for example to update a db schema at run-time or the like.

I think it would be more correct to say that applications should connect with the least privilege they need.

 
show source | credits | sitemap | contact | advertising | mirror sites