Majoritatea aplicațiilor web trebuie doar să citească și să scrie date — nu creează niciodată tabele, nu fac drop la indexuri și nu gestionează proceduri stocate. Acordând doar SELECT, INSERT, UPDATE și DELETE, oferi aplicației tale exact permisiunile de care are nevoie și nimic mai mult.
De ce privilegiile doar pentru date sunt ideale pentru aplicații
O aplicație web standard efectuează patru operațiuni de date:
- SELECT — Citirea rândurilor din tabele (încărcarea paginilor, obținerea înregistrărilor).
- INSERT — Adăugarea de rânduri noi (înregistrări utilizatori, trimiteri de formulare).
- UPDATE — Modificarea rândurilor existente (editarea profilurilor, actualizarea setărilor).
- DELETE — Eliminarea rândurilor (ștergerea postărilor, curățarea sesiunilor).
Aceste patru privilegii acoperă practic fiecare interogare pe care un CMS, platformă de e-commerce sau aplicație web personalizată o va executa vreodată. Acordarea privilegiilor suplimentare de structură sau administrare creează riscuri inutile.
Metoda 1: În timpul creării utilizatorului
- Autentifică-te la mysql.nobregas.org.
- Mergi la Database Users > apasă Create User.
- Introdu numele de utilizator, parola și host-ul.
- Selectează baza de date țintă din meniul dropdown Grant to Database.
- Secțiunea Privileges apare cu ALL PRIVILEGES bifat.
- Debifează ALL PRIVILEGES pentru a dezvălui căsuțele individuale.
- Sub Data, bifează: SELECT, INSERT, UPDATE, DELETE.
- Lasă toate căsuțele de Structure și Administration nebifate.
- Apasă Create User.
Metoda 2: Prin Manage (utilizator existent)
- Mergi la Database Users și apasă Manage pe utilizator.
- În secțiunea Add Database Access, selectează baza de date.
- Debifează ALL PRIVILEGES.
- Bifează doar SELECT, INSERT, UPDATE, DELETE.
- Apasă Add Grant.
Metoda 3: Reducerea unei acordări existente
Dacă un utilizator are în prezent ALL PRIVILEGES și vrei să restricționezi la doar date:
- Apasă Manage pe utilizator.
- Găsește baza de date în Current Grants și apasă Edit.
- Debifează ALL PRIVILEGES.
- Bifează doar SELECT, INSERT, UPDATE, DELETE.
- Apasă Save Changes.
Ce poate face acest utilizator
| Operațiune | Interogare exemplu | Permis? |
|---|---|---|
| Citire date | SELECT * FROM users |
Da |
| Adăugare rânduri | INSERT INTO orders (...) |
Da |
| Editare rânduri | UPDATE products SET price = 9.99 |
Da |
| Eliminare rânduri | DELETE FROM sessions WHERE expired = 1 |
Da |
| Creare tabel | CREATE TABLE logs (...) |
Nu |
| Drop tabel | DROP TABLE users |
Nu |
| Modificare structură | ALTER TABLE users ADD COLUMN age INT |
Nu |
Când să folosești această configurare
- WordPress, Joomla, Laravel, Django — Aceste framework-uri au nevoie doar de operațiuni CRUD după configurarea inițială.
- Magazine e-commerce — WooCommerce, PrestaShop și platforme similare.
- API-uri personalizate — Backend-uri REST sau GraphQL care citesc și scriu date.
- Medii de hosting partajat — Limitează impactul dacă credențialele sunt compromise.
Beneficiul de securitate
Dacă un atacator obține acces la un utilizator cu privilegii doar pentru date, nu poate:
- Face drop sau truncate la tabelele tale.
- Modifica structura tabelelor.
- Crea trigger-uri sau proceduri stocate.
- Cauza daune structurale ireversibile.
Datele tale pot fi în continuare la risc, dar schema bazei de date rămâne intactă — făcând recuperarea semnificativ mai ușoară.