PHP 7.1.0 Release Candidate 3 Released

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 1 note

up
-1
Anonymous
4 months ago
"You are encouraged not to implement all the business logic in the web application (i.e. your script), instead do it in the database schema using views, triggers or rules. If the system evolves, new ports will be intended to open to the database, and you have to re-implement the logic in each separate database client."

This doesn't make sense to me. I might be misreading it, but I can't see how this adds to security. It sounds like implementing business logic in the database just increases the amount of work you have to do if you ever want to upgrade or change your SQL database.
To Top