O trăsătură caracteristică a MySQL este propria sa securitate, bazându-se pe protecția externă. Fiind un sistem de gestionare a bazelor de date modern, complet și eficient, MySQL are propriile instrumente pentru gestionarea utilizatorilor și accesul acestora la resursele pe care le controlează.
Dacă nu cunoașteți numele de utilizator și parola corecte, accesarea bazei de date prin MySQL este foarte dificilă.
În modul normal de găzduire, acest lucru este suficient. Situațiile neprevăzute, atacurile hackerilor și alte probleme sunt o problemă de administrare externă a sistemului și servicii de securitate. Acest concept a devenit tradițional și practic nu este discutat.
Instalați serverul MySQL și rădăcina utilizatorului
În orice mediu de operare este instalat sistemul de gestionare a bazei de date, acesta are întotdeauna cel puțin un utilizator: root. Instalați MySQL, creați un utilizator cu toate drepturile root - fără aceasta, lucrați cuserverul nu este posibil. Privilegiile acestui utilizator sunt suficiente pentru:
- creați și administrați utilizatori noi;
- creați și gestionați baze de date.
Este în principiu posibil ca utilizatorii „fără parolă” să existe în MySQL, dar acest lucru este inacceptabil.
Practică obișnuită:
- server instalat pe propriul computer, unde se poate instala hosting (opțiune locală);
- server este pe găzduire publică pe Internet.
În primul caz, este posibil să lucrezi cu serverul din linia de comandă și să folosești phpMyAdmin, în al doilea caz, doar phpMyAdmin sau un instrument similar, dar linia de comandă poate fi accesată prin acces SSH la distanță.
Proprie instrumente de administrare
Sentimentul de rudenie cu familia Unixoid și cu trecutul de pe serverele Apache este un semn distinctiv al MySQL: create user este o linie de comandă cu sintaxă ciudată. Pentru profesioniștii care lucrează cu Linux și sisteme similare, acest lucru este pe cât de familiar, pe atât de sălbatic în ochii utilizatorilor Windows care nu au „intrat niciodată în viața reală”.
Crearea unui utilizator începe cu pornirea liniei de comandă a serverului. Într-un mediu Windows, acest lucru se face după cum urmează.
Mai întâi (1) trebuie să rulați linia de comandă ca administrator, apoi să mergeți la folderul în care se află MySQL (2), apoiporniți serverul în sine (3):
mysql -u… -p
aici „-u…” și „-p” sunt chei care indică numele „…”=rădăcină (sau alt nume) și parola acestuia. În principiu, un utilizator poate să nu fie root, ci unul care are drepturi „root” (administrative).
Important: de fapt, serverul rulează mereu, aici mysql -u… -p este comanda pentru a accesa serverul, nu îl pornește.
Într-un mediu Linux și sisteme similare, o astfel de comandă este o acțiune „nativă” și, de regulă, este determinată prin simpla pornire a mysqld în locul potrivit (la calea corectă), acest lucru ar trebui verificat cu administratorul. Există de obicei un alt nume aici: nu mysql, ci mysqld. Tot aici, această acțiune nu este întotdeauna disponibilă pentru toți utilizatorii (a sistemului de operare, nu a serverului MySQL). Spre deosebire de Windows, în Linuxoids, ordinea și securitatea sunt o cerință naturală și nenegociabilă, care este întotdeauna tratată într-un mod civilizat.
În orice caz, odată ce mysql a pornit, va anunța acest lucru cu un prompt (4):
mysql>
și va fi posibil să lucrați atât cu utilizatori, cât și cu baze de date.
Notă. La instalarea într-un mediu Windows, totul: Apache, MySQL, PHP, phpMyAdmin poate fi setat la căile implicite, dar se recomandă utilizarea unor locații mai compacte și mai apropiate pentru aceste instrumente importante:
- c:\SCiA\Apache;
- c:\SCiA\PHP;
- c:\SCiA\MySQL;
- …
- c:\SCiB\localhost\www\phpMyAdmin;
- c:\SCiB\site1\www;
- c:\SCiB\site2\www;
- …
- c:\SCiB\siteN\www\.
Această logică nu numai că va simplifica administrarea, dar va extinde și capacitatea dezvoltatorului de a trece între versiunile de produs și de a gestiona funcționalitatea acestora.
Lucrul pe linia de comandă MySQL
Odată ce serverul a răspuns și a furnizat linia de comandă, utilizatorii pot fi creați și li se pot atribui permisiuni.
În acest exemplu, comanda create user a creat utilizatorul Petrov cu parola 123DFG. Dacă se comite o eroare la introducerea unei comenzi, serverul oferă să o corecteze, dar este mai bine să nu greșiți niciodată când lucrați pe linia de comandă!
Următoarea comandă acordă toate privilegiile oferă toate drepturile asupra tuturor. Comanda de spălare poate fi omisă, dar „explorează” memoria tampon de comenzi, adică le fixează execuția.
MySQL: creați un utilizator și acordați drepturi la baza de date
Comandă folosită în exemplu:
ACORDĂ TOATE PRIVILEGIILE PE. CĂTRE „Petrov”@“localhost”;
oferă utilizatorului Petrov acces la toate bazele de date (primul asterisc) la toate tabelele (al doilea asterisc).
Ca o regulă generală MySQL, crearea unui utilizator este:
GRANT [tipul de privilegii] ON [numele bazei de date].[numele tabelului] LA „[utilizator]”@'localhost”;
Sunt permise următoarele privilegii:
- TOATE PRIVILEGILE - toate drepturile.
- CREATE - dreptul de a crea tabele/baze de date noi.
- DROP - dreptul de a elimina tabele/baze de date.
- DELETE - dreptul de a șterge informațiile din tabele.
- INSERT - dreptul de a scrie informații în tabele.
- SELECT - dreptul de a citi informații din tabele.
- UPDATE - dreptul de a actualiza informațiile din tabele.
- OPȚIUNEA DE ACORDARE - dreptul de a lucra cu privilegiile altor utilizatori.
Din punct de vedere practic, în MySQL „creați un utilizator” implică trei opțiuni pentru drepturi:
- toate drepturile asupra tuturor bazelor de date și tuturor utilizatorilor;
- citește și scrie;
- numai citire.
Alte opțiuni pentru acordarea drepturilor sunt rareori necesare. În mediul Linux, există mult mai multe motive pentru libertatea „legală” (și necesitatea), dar există mult mai multe oportunități acolo decât în Windows.
Operația inversă a MySQL „create user” este drop.
drop utilizator „Petrov”@“localhost”;
După executarea acestei comenzi, Petrov nu va mai fi utilizator și i se vor pierde privilegiile. Pentru a schimba privilegiile, utilizați comanda:
REVOCA [privilegiul] PE [DB].[Tabel] LA „[utilizator]”@'localhost”;
Acțiunea obișnuită în MySQL este crearea unui utilizator sau ștergerea acestuia, dar schimbarea privilegiilor este, de asemenea, o operațiune validă (rar solicitată).
Utilizarea phpMyAdmin
Există multe implementări ale acestui instrument minunat. În funcție de versiunea de Apache, PHP și MySQL utilizată, de multe ori este nevoie de mult timp pentru a găsi versiunea potrivită a acestui produs, dar odată ce phpMyAdmin este instalat cu succes, utilizatorul are multe caracteristici convenabile și un confort confortabil.interfață.
Folosind phpMyAdmin, puteți spune MySQL să creeze un utilizator pentru orice gazdă și să gestioneze utilizatorii existenți în moduri aproape chirurgicale.
phpMyAdmin nu este singurul instrument cu o interfață confortabilă, intuitivă și bogată în funcții, dar este cel mai popular instrument pentru administrarea serverelor MySQL.
Despre linia de comandă și securitate
Desigur, folosirea liniei de comandă MySQL este un exercițiu neatractiv, dar trebuie avut în vedere că în unele cazuri doar linia de comandă a serverului poate salva baza de date sau utilizatorul, asigura importul sau exportul de informații.
Versiunile de software evoluează atât de repede încât dezvoltatorii pur și simplu nu au timp să combine caracteristicile, de exemplu, PHP și MySQL, MySQL și phpMyAdmin. Dacă se întâmplă ceva, linia de comandă va salva întotdeauna ziua.
De asemenea, nu ar trebui să uităm niciodată: administrarea MySQL este doar accesarea bazelor de date și prin funcționalitatea acesteia. Fișierele bazei de date sunt deschise pentru acces în afara MySQL. Securizarea externă a MySQL și a resurselor pe care le controlează este o nevoie reală și importantă.