Economisiți 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul: Skills Începeți
Secțiuni
Administrație

Cum să creezi un utilizator nou și să setezi permisiuni în MySQL

MySQL rămâne unul dintre cele mai utilizate sisteme de gestionare a bazelor de date relaționale din lume, alimentând totul, de la mici proiecte personale la aplicații la scară enterprise. Indiferent dacă ești dezvoltator, administrator de sisteme sau proprietar de afacere care gestionează propria infrastructură, înțelegerea modului de creare a utilizatorilor MySQL și configurarea permisiunilor acestora este o abilitate indispensabilă pentru menținerea unui mediu de bază de date sigur și bine organizat.

Gestionarea slabă a utilizatorilor este una dintre principalele cauze ale breșelor de bază de date. Acordarea de privilegii excesive, reutilizarea acreditărilor sau lăsarea conturilor implicite active poate expune întregul strat de date la riscuri inutile. Acest ghid te ghidează prin procesul complet — de la conectarea la MySQL la verificarea permisiunilor — cu comenzi clare, exemple practice și cele mai bune practici de securitate la fiecare pas.

De ce gestionarea utilizatorilor MySQL este importantă

Înainte de a intra în detalii cu privire la comenzi, merită să înțelegeți *de ce* acest lucru este important. MySQL funcționează pe baza unui principiu al celui mai mic privilegiu: fiecare utilizator ar trebui să aibă acces doar la bazele de date, tabelele și operațiile specifice de care are cu adevărat nevoie. Acest lucru minimizează raza de acțiune a unui cont compromis și face auditarea mult mai ușoară.

Dacă rulați MySQL pe un plan VPS Hosting gestionat sau pe un Dedicated Server, aveți acces complet la nivel de root la instanța MySQL, ceea ce vă oferă control total asupra creării utilizatorilor și gestionării permisiunilor. Multe medii cu panou de control — cum ar fi cele disponibile cu VPS cu cPanel — oferă, de asemenea, o interfață grafică pentru gestionarea MySQL, care poate completa abordarea din linia de comandă descrisă aici.

Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

  • MySQL 5.7+ sau MySQL 8.0+ instalat și în funcțiune pe serverul dvs.
  • Acces root sau acces la un cont superutilizator MySQL cu privilegii GRANT OPTION
  • Acces la terminal (Linux/macOS) sau Command Prompt / PowerShell (Windows)

Pasul 1: Conectare la MySQL

Pentru a gestiona utilizatorii și permisiunile, trebuie să vă autentificați ca utilizator cu privilegii administrative suficiente. În majoritatea cazurilor, acesta este contul root.

Deschideți terminalul sau Command Prompt

  • Linux / macOS: Deschideți aplicația terminalului
  • Windows: Deschideți Command Prompt sau PowerShell

Conectare la serverul MySQL

Executați următoarea comandă:

mysql -u root -p

Vi se va cere să introduceți parola root. După autentificarea reușită, veți vedea promptul MySQL:

mysql>

> Sfat de securitate: Dacă vă conectați la un server MySQL la distanță, specificați gazda cu flag-ul -h:

> “`bash

> mysql -u root -p -h your_server_ip

> “`

Pasul 2: Creați un nou utilizator MySQL

Odată ce sunteți în shell-ul MySQL, puteți crea un nou utilizator cu declarația CREATE USER.

Sintaxă

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Detalii parametri:

ParametruDescriere
usernameNumele pe care doriți să-l atribuiți noului utilizator
hostGazda din care utilizatorul este autorizat să se conecteze. Utilizați localhost pentru acces doar local sau % ca wildcard pentru orice gazdă
passwordO parolă puternică și unică pentru acest utilizator

Exemplu: Creați un utilizator accesibil din orice gazdă

CREATE USER 'newuser'@'%' IDENTIFIED BY 'StrongP@ssw0rd!';

Exemplu: Creați un utilizator restricționat la Localhost

CREATE USER 'localuser'@'localhost' IDENTIFIED BY 'AnotherStr0ng#Pass';

> Bună practică: Ori de câte ori este posibil, restricționați utilizatorii la localhost sau la o adresă IP specifică în loc să utilizați %. Accesul cu gazdă wildcard vă mărește suprafața de atac în mod inutil.

Notă MySQL 8.0 despre plugin-urile de autentificare

MySQL 8.0 a introdus caching_sha2_password ca plugin-ul de autentificare implicit, care poate cauza probleme de compatibilitate cu clienții sau aplicațiile mai vechi. Dacă este necesar, puteți seta în mod explicit metoda de autentificare:

CREATE USER 'newuser'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongP@ssw0rd!';

Pasul 3: Acordați Permisiuni Utilizatorului

Crearea unui utilizator nu acordă automat acces la nicio bază de date. Trebuie să atribuiți explicit privilegii folosind declarația GRANT.

Sintaxă

GRANT privileges ON database.table TO 'username'@'host';

Detalii parametri:

ParametruDescriere
privilegesO listă separată prin virgule de permisiuni (de ex., SELECT, INSERT, UPDATE, DELETE) sau ALL PRIVILEGES
database.tableDomeniul acordării. Utilizați *.* pentru toate bazele de date și tabelele, dbname.* pentru toate tabelele dintr-o bază de date specifică, sau dbname.tablename pentru un singur tabel
username@hostContul utilizator țintă

Privilegii MySQL Comune

PrivilegiuDescriere
SELECTCitire date din tabele
INSERTAdăugare rânduri noi în tabele
UPDATEModificare rânduri existente
DELETEȘtergere rânduri din tabele
CREATECreare baze de date sau tabele noi
DROPȘtergere baze de date sau tabele
INDEXCreare sau ștergere indexuri
ALTERModificare structuri tabel
ALL PRIVILEGESAcces complet (utilizați cu precauție)
GRANT OPTIONPermiteți utilizatorului să acorde privilegii altora

Exemplu: Acordați Acces Complet la o Bază de Date Specifică

GRANT ALL PRIVILEGES ON exampledb.* TO 'newuser'@'%';

Exemplu: Acordați Acces Doar Citire

GRANT SELECT ON exampledb.* TO 'readonly_user'@'localhost';

Exemplu: Acordați Privilegii Specifice pe un Singur Tabel

GRANT SELECT, INSERT, UPDATE ON exampledb.orders TO 'app_user'@'localhost';

Exemplu: Acordați Privilegii Globale (Utilizați Rar)

GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' WITH GRANT OPTION;

> Avertisment: Acordarea ALL PRIVILEGES ON *.* oferă unui utilizator acces echivalent cu superuser. Rezervați aceasta doar pentru conturi administrative de încredere.

Pasul 4: Reîncărcați Privilegiile

După efectuarea modificărilor la permisiunile utilizatorului, este o bună practică să reîncărcați tabelele de privilegii, astfel încât MySQL să recunoască imediat modificările dumneavoastră:

FLUSH PRIVILEGES;

> Notă: În versiunile moderne ale MySQL (5.7.3+), FLUSH PRIVILEGES este declanșat automat după declarațiile GRANT, REVOKE și CREATE USER. Cu toate acestea, rularea acestuia în mod explicit după editări manuale ale tabelelor de sistem mysql (prin INSERT sau UPDATE) rămâne esențială.

Pasul 5: Verificați permisiunile utilizatorului

Confirmați întotdeauna că permisiunile pe care le-ați setat sunt corecte înainte de a pune un cont de utilizator în producție.

Verificați acordurile pentru un utilizator specific

SHOW GRANTS FOR 'newuser'@'%';

Exemplu de ieșire:

+--------------------------------------------------------------+
| Grants for newuser@%                                         |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `newuser`@`%`                          |
| GRANT ALL PRIVILEGES ON `exampledb`.* TO `newuser`@`%`       |
+--------------------------------------------------------------+

Listați toți utilizatorii MySQL

SELECT user, host FROM mysql.user;

Verificați propriile privilegii ale utilizatorului curent

SHOW GRANTS;

Pasul 6: Revocare permisiunilor (Când este necesar)

Permisiunile se schimbă în timp. Când un utilizator nu mai are nevoie de anumit acces, revocați-l prompt folosind declarația REVOKE:

Sintaxă

REVOKE privileges ON database.table FROM 'username'@'host';

Exemplu: Revocare toate privilegiile unui utilizator

REVOKE ALL PRIVILEGES ON exampledb.* FROM 'newuser'@'%';
FLUSH PRIVILEGES;

Exemplu: Revocare un privilegiu specific

REVOKE DELETE ON exampledb.orders FROM 'app_user'@'localhost';

Pasul 7: Ștergerea unui utilizator (Când este necesar)

Dacă un cont de utilizator nu mai este necesar, eliminați-l complet pentru a reduce vectorii de acces inutili:

DROP USER 'newuser'@'%';

Această comandă elimină contul de utilizator și toate privilegiile asociate într-o singură operație.

Gestionarea Utilizatorilor MySQL pe Medii Găzduite

Dacă gestionați MySQL pe un mediu de găzduire partajată sau gestionată, procesul poate diferi ușor în funcție de panoul de control. Platforme precum cPanel, Plesk și DirectAdmin oferă interfețe grafice pentru crearea utilizatorilor MySQL și atribuirea permisiunilor fără a scrie SQL direct.

Pentru utilizatorii care au nevoie de control complet din linia de comandă fără supraîncărcarea unui server dedicat, planurile VPS Hosting oferă echilibrul ideal între performanță, flexibilitate și cost. Dacă rulați aplicații cu consum intensiv de baze de date care necesită debit maxim și resurse izolate, luați în considerare upgrade-ul la un Dedicated Server pentru performanță garantată.

Pentru proiecte mai mici sau medii de dezvoltare, planurile Shared Web Hosting includ de obicei acces phpMyAdmin, care oferă o interfață bazată pe browser pentru gestionarea utilizatorilor și bazelor de date MySQL.

În plus, dacă aplicația dvs. gestionează date sensibile ale utilizatorilor, asocierea serverului dvs. de baze de date cu un SSL Certificate valid asigură că datele transmise între aplicația dvs. și serverul de baze de date rămân criptate și protejate de interceptare.

Bune practici de securitate pentru gestionarea utilizatorilor MySQL

Urmarea pașilor tehnici este doar jumătate din muncă. Iată practicile critice de securitate pe care fiecare administrator ar trebui să le implementeze:

  1. Nu folosiți niciodată contul root pentru conexiuni de aplicații. Creați utilizatori dedicați cu privilegii minime pentru fiecare aplicație.
  2. Utilizați parole puternice și unice pentru fiecare utilizator MySQL. Luați în considerare un manager de parole sau un seif de secrete.
  3. Restricționați accesul gazdei la localhost sau adrese IP specifice ori de câte ori este posibil.
  4. Auditați conturile de utilizator în mod regulat. Eliminați conturile care nu mai sunt active sau necesare.
  5. Evitați acordurile cu wildcard (*.*) decât dacă sunt absolut necesare pentru sarcini administrative.
  6. Activați plugin-ul de jurnal de audit MySQL pe serverele de producție pentru a urmări toată activitatea utilizatorului.
  7. Rotați parolele periodic, mai ales după schimbări de personal sau compromisuri suspectate.
  8. Utilizați SSL/TLS pentru conexiuni MySQL atunci când vă conectați prin rețea, chiar și într-o LAN privată.

Referință rapidă: Comenzi esențiale de gestionare a utilizatorilor MySQL

SarcinăComandă
Conectare la MySQLmysql -u root -p
Creați un utilizator nouCREATE USER 'user'@'host' IDENTIFIED BY 'pass';
Acordați toate privilegiile pe o bază de dateGRANT ALL PRIVILEGES ON db.* TO 'user'@'host';
Acordați acces doar pentru citireGRANT SELECT ON db.* TO 'user'@'host';
Gol privilegiiFLUSH PRIVILEGES;
Afișați acordurile utilizatoruluiSHOW GRANTS FOR 'user'@'host';
Listați toți utilizatoriiSELECT user, host FROM mysql.user;
Revocare privilegiiREVOKE privileges ON db.* FROM 'user'@'host';
Ștergeți un utilizatorDROP USER 'user'@'host';

Concluzie

Gestionarea adecvată a utilizatorilor MySQL este un pilon fundamental al securității bazelor de date și al igienei operaționale. Prin crearea de conturi de utilizator dedicate, atribuirea doar a permisiunilor pe care fiecare cont le necesită cu adevărat și auditarea regulată a listei dvs. de utilizatori, reduceți dramatic riscul de acces neautorizat, scurgeri de date și escaladare de privilegii.

Comenzile acoperite în acest ghid — CREATE USER, GRANT, REVOKE, FLUSH PRIVILEGES, SHOW GRANTS și DROP USER — formează setul de instrumente de bază de care are nevoie fiecare administrator de baze de date. Indiferent dacă gestionați o singură bază de date de dezvoltare sau supervizați zeci de instanțe de producție, aplicarea consecventă a acestor practici va menține mediul MySQL dvs. sigur, ușor de întreținut și conform.

Pentru un mediu de găzduire care vă oferă controlul complet necesar pentru a implementa aceste bune practici, explorați gama de soluții AlexHost — de la Găzduire Web Partajată pentru proiecte simple la Panouri de Control VPS complet gestionate pentru echipe care au nevoie de putere și flexibilitate fără complexitatea administrării bare-metal.