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ă.
krystian at jablonowski dot eu ¶3 years ago
It's a good practice to create a user account with absolutely minimal permissions. Whenever You need to select those permissions by columns or tables remember that some rules don't apply to security measures on Your server, like "We are all adults here" or "KISS - Keep It Simple Stupid". Personally, I prefer to create a minimal amount of users with only the necessary authorization to manipulate or collect data from DB.
Remember, that leak of data can have tremendous consequences, and rebuilding the trust of Your users is extremely hard to accomplish.