De la autor: Te-aș sfătui să fii atent cu privilegiile. Un cunoscut de-al meu, care are drepturi de administrator în apartamentul său, i-a oferit soției sale „privilegiul” de a restricționa accesul la frigider. Drept urmare, pentru a doua lună a ținut dietă și mănâncă doar legume. Prin urmare, chiar înainte de a adăuga un utilizator la MySQL, gândiți-vă cu atenție!
Cei în care avem încredere!
Dar totuși, există oameni în lume în care se poate avea încredere. Și, desigur, aceasta nu este o soție sau soacra. Să învățăm astăzi cum să adăugați conturi în MySQL și să le acordăm anumite privilegii.
Acest lucru se poate face atât prin linia de comandă, cât și prin intermediul shell-urilor de program. Să începem cu o opțiune ușoară. Să folosim phpMyAdmin pentru a adăuga un utilizator nou. Dar mai întâi, să facem o mică digresiune în sistemul de conturi implementat în DBMS.
Cel mai înalt utilizator din ierarhie este utilizatorul cu contul root. Inițial, acest cont vine cu o parolă goală. Administratorul (rădăcină) poate adăuga un utilizator la MySQL, îi poate acorda anumite drepturi și, de asemenea, îl poate priva de privilegii.
Sistemul de privilegii este implementat nu numai pe serverul DBMS, ci și la nivelul bazei de date. Puteți acorda unui utilizator acces la o anumită bază de date și, de asemenea, îi puteți permite să efectueze doar anumite operațiuni cu „stocare”. De exemplu, interziceți inserarea, ștergerea și actualizarea datelor, dar permiteți selecții din tabele. Dar toate acestea sunt mai ușor de învățat în practică, așa că să începem.
Adăugarea conturilor prin phpMyAdmin
Deschideți aplicația, accesați fila „Utilizatori” din partea de sus. Aceasta va afișa tabelul „Prezentare generală a conturilor”. Listează toate conturile care există pe instanța serverului, precum și un rezumat al privilegiilor acestora.
Pentru a adăuga un cont nou, trebuie să faceți clic pe linkul „Adăugați utilizator”, care se află sub tabel. După aceea, sistemul aplicației va afișa o casetă de dialog specială „Adăugați utilizator”.
În secțiunea de sus („Informații despre cont”), ar trebui să specificați un nume pentru un utilizator nou, să setați și să confirmați o parolă. De asemenea, puteți obține o valoare aleatoare a parolei care va fi înlocuită automat în câmpuri. Pentru a face acest lucru, faceți clic pe butonul „Generare”.
Dacă derulați puțin în jos, atunci privilegiile globale vor deveni disponibile pentru editare, care pot fi acordate utilizatorului care este creat. Captura de ecran arată că toate privilegiile sunt împărțite în mai multe categorii: „Date”, „Structură” și „Administrare”. Înainte de a adăuga un utilizator la MySQL, citiți-le și verificați-le pe cele de care aveți nevoie.
Pentru a crea un cont, faceți clic pe butonul Adăugați utilizator din partea de jos a casetei de dialog. Acum să ne uităm la rezultatul acțiunilor noastre. Reveniți la tabelul „Prezentare generală a contului” și examinați conținutul acestuia. După cum puteți vedea, a fost creat un cont nou pe server cu numele specificat de noi.
Adăugați un nou utilizator al bazei de date
Prin phpMyAdmin, puteți administra roluri nu doar la nivel global, ci și la nivelul bazelor de date individuale. Pentru a adăuga un utilizator la baza de date în MySQL, selectați-l pe cel de care aveți nevoie în lista din stânga. Apoi treceți prin elementul de meniu „Privilegii”, unde tabelul va afișa toți utilizatorii care au acces la această bază de date. Pentru a crea un nou cont de bază de date, faceți clic pe linkul „Adăugați utilizator”, care se află puțin mai jos (sub tabel).
După aceea, va apărea dialogul deja familiar „Adăugați utilizator”. Completem toate câmpurile, ca în exemplul anterior. Vom dota leha2 cu privilegii globale pe baza mondială - lăsați-l să facă ce vrea cu această lume. Și faceți clic în partea de jos „Adăugați utilizator”.
Controlul capacităţilor utilizatorilor creaţi
Să ne dăm seama ce ultimul „Lech” poate fi creat de noi. Accesați linia de comandă. Intrăm pe server și efectuăm o selecție din baza de date pentru care a fost adăugat un utilizator la MySQL: Z: \ usr \ local \ mysql-5.5 \ bin \ mysql.exe -u leha2 -p123
Acum să încercăm să intrăm într-o altă bază de date sub acest cont (leha2) și să facem și o selecție din ea. De exemplu, din această bază de date:
SELECT * FROM `db1`.`animal`;
SELECTAȚI * DIN `db1`. `animal`; |
Dar, ca răspuns, primim de la MySQL „în tyk”, deoarece contul utilizat are drepturi doar la baza de date mondială.
Dar acestea nu sunt toate opțiunile de administrare a privilegiilor. Puteți adăuga un utilizator numai pentru vizualizare la MySQL. Pentru a face acest lucru, editați tabelul de drepturi al unui cont existent sau creați unul nou.
Accesați din nou fila „Privilegii”. În tabelul de utilizatori, lângă contul solicitat, faceți clic pe „Editați privilegii”. Apoi, în caseta de dialog care apare, dezactivați toate privilegiile, cu excepția selectării. Astfel, utilizatorul poate vizualiza tabelele sau poate face selecții din ele doar folosind comanda SQL SELECT.
Crearea unui utilizator prin consolă
Să învățăm cum să adăugați un utilizator la MySQL prin consolă. Pentru a face acest lucru, trebuie să ne autentificăm la serverul bazei de date cu drepturi de administrator. Apoi, folosind comanda CREATE, creați un utilizator nou și setați o parolă pentru el:
CREAȚI UTILIZATOR „verter” @ „localhost” IDENTIFICAT DE „12345”;
CREAȚI UTILIZATOR „verter” @ „localhost” IDENTIFICAT DE „12345”; |
Acum să revenim la shell-ul software și să vedem dacă „robotul” creat de noi a apărut în tabelul „Prezentare generală a conturilor”.
După cum puteți vedea, verter a devenit un utilizator al serverului nostru MySQL. Dar nu are drepturi deloc (ca orice robot). Atât de lipsit de etică în raport cu frații noștri „de fier”, așa că îi vom oferi toate privilegiile oricărei baze. De exemplu, lumea.
O caracteristică comună a MySQL este propria sa securitate, bazându-se pe securitatea 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, accesați baza de date prin MySQL foarte greu de obtinut.
În modul obișnuit de găzduire, acest lucru este suficient. Situațiile neprevăzute, atacurile hackerilor și alte probleme sunt o chestiune de administrare externă a sistemului și servicii de securitate. Acest concept a devenit tradițional și practic nu este discutat.
Instalarea serverului MySQL și a utilizatorului rădăcină
În orice mediu de operare este instalat sistemul de management al 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, lucrul cu serverul este imposibil. Privilegiile acestui utilizator sunt suficiente pentru:
- crearea și administrarea de noi utilizatori;
- creați și gestionați baze de date.
În principiu, este posibil ca MySQL să aibă utilizatori „fără parolă”, dar acest lucru este inacceptabil.
Practică simplă:
- serverul este instalat pe propriul computer, pe care se poate instala hosting (versiunea locala);
- serverul este găzduit pe Internet.
În primul caz, este posibil să lucrați cu serverul din linia de comandă și să utilizați phpMyAdmin, în al doilea caz, doar phpMyAdmin sau un instrument similar, dar linia de comandă este disponibilă prin acces SSH la distanță.
Instrumente de administrare proprii
Un sentiment de rudenie cu familia unixoid și cu trecutul de la serverele Apache este o caracteristică a MySQL: crearea unui utilizator este o linie de comandă cu o sintaxă ciudată. Pentru specialiș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 utilizatorului începe prin rularea 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), apoi să porniți serverul însuși (3):
- mysql -u ... -p
aici „-u ...” și „-p” sunt chei care indică numele „...” = root (sau alt nume) și parola acestuia. În principiu, un utilizator poate să nu fie root, ci unul care are drepturi „root” (administrative).
Substanţial: serverul rulează întotdeauna, aici mysql -u ... -p este comanda pentru a accesa serverul, nu pentru a-l porni.
În 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 (pe calea corectă), acest lucru ar trebui verificat cu administratorul. Acesta este de obicei un nume diferit: nu mysql, ci mysqld. De asemenea, aici această acțiune nu este întotdeauna disponibilă pentru toți utilizatorii (ai sistemului de operare, nu a serverului MySQL). Spre deosebire de Windows, în Linux, ordinea și siguranța este o cerință firească și nu discutată, față de care există întotdeauna o atitudine civilizată.
În orice caz, de îndată ce mysql pornește, vă va informa despre aceasta cu promptul (4):
- mysql>
și se va putea lucra atât cu utilizatori, cât și cu baze de date.
Notă. La instalarea într-un mediu Windows, totul: Apache, MySQL, poate fi instalat în căile implicite, dar este recomandat să folosiți 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.
Lucrează în linia de comandă MySQL
Odată ce serverul a răspuns și a furnizat linia de comandă, puteți crea utilizatori și le puteți atribui drepturi.
În acest exemplu, comanda create user a creat utilizatorul Petrov cu parola 123DFG. Dacă se face o greșeală la introducerea unei comenzi, serverul se oferă să o repare, dar este mai bine când lucrezi în linia de comandă. nu face niciodata greseli!
Următoarea comandă acordă toate privilegiile oferă toate drepturile asupra tuturor. Comanda de spălare poate fi omisă, dar „șterește” bufferul de comandă, adică fixează execuția acestora.
MySQL: creați un utilizator și acordați drepturi bazei de date
Comanda folosită în exemplu:
- ACORDĂ TOATE PRIVILEGIILE PE *.* „Petrov” @ „localhost”;
deschide de fapt accesul utilizatorului Petrov la toate bazele de date (primul asterisc) la toate tabelele (al doilea asterisc).
Ca regulă generală a 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 PRIVILEGIILE - toate drepturile.
- CREATE - dreptul de a crea noi tabele/baze de date.
- DROP - dreptul de a arunca 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țiile din tabele.
- UPDATE - dreptul de a actualiza informațiile din tabele.
- OPȚIUNEA DE ACCORDARE - dreptul de a lucra cu privilegiile altor utilizatori.
Din punct de vedere practic, în MySQL „create user” implică trei tipuri de drepturi:
- toate drepturile asupra tuturor bazelor de date și tuturor utilizatorilor;
- citire si scriere;
- doar lectură.
Restul opțiunilor de acordare a drepturilor sunt puține atunci când sunt necesare. În mediul Linux-sisteme, există mult mai multe motive pentru libertatea „legală” (și necesitatea), dar există mult mai multe oportunități acolo decât în Windows.
Opusul MySQL „create user” este drop.
- elimină utilizatorul „Petrov” @ „localhost”;
După executarea acestei comenzi, utilizatorul Petrov va dispărea și privilegiile sale vor fi pierdute. Pentru a schimba privilegiile, utilizați comanda:
- REVOCA [privilegiul] ON [db] [Tabel] LA „[utilizator]” @ „localhost”;
Acțiunea obișnuită în MySQL este de a crea un utilizator sau de a șterge și nimic mai mult, dar schimbarea privilegiilor este și o operațiune validă (rar este necesară).
Folosind phpMyAdmin
Există multe implementări ale acestui instrument grozav. În funcție de versiunea de Apache, PHP și MySQL folosită, de multe ori este nevoie de mult timp pentru a căuta versiunea necesară a acestui produs, dar odată ce phpMyAdmin este instalat cu succes, utilizatorul are multe caracteristici convenabile și o interfață confortabilă.
Folosind phpMyAdmin, puteți spune MySQL să creeze un utilizator pentru orice gazdă și să gestioneze utilizatorii existenți cu metode 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, utilizarea liniei de comandă MySQL este o experiență neatractivă, dar trebuie avut în vedere că, în unele cazuri, doar linia de comandă a serverului poate salva baza de date sau utilizatorul, oferi import sau export de informații.
Versiunile produselor software se dezvoltă atât de repede încât dezvoltatorii pur și simplu nu au timp să combine funcții, de exemplu, PHP și MySQL, MySQL și phpMyAdmin. Dacă se întâmplă ceva, linia de comandă va salva întotdeauna ziua.
De asemenea, nu trebuie să uitați niciodată: administrarea MySQL se referă doar la accesul la bazele de date și prin funcționalitatea acesteia. Fișierele bazei de date sunt deschise pentru acces în afara MySQL. Securitatea externă pentru MySQL și resursele pe care le controlează este o nevoie reală și importantă.
În acest articol, vă vom arăta cum să creați noi permisiuni și privilegii de utilizator pentru acest utilizator în MySQL. MySQL este o bază de date relațională (DBMS) cu sursă deschisă, condusă de sistem, care permite utilizatorilor și aplicațiilor să stocheze, să organizeze și să își recupereze datele. Are un sistem de control al accesului care constă în permisiunile pe care utilizatorii le pot avea asupra tabelelor și bazelor de date, vom analiza câteva dintre variantele acestui sistem de control al accesului descrise mai târziu în acest ghid.
Să începem prin a vă autentifica
Pentru a vă conecta la sistemul nostru MySQL, folosim următoarea comandă:
# mysql -u root -p
Când executăm această comandă, îi spunem clientului MySQL că suntem conectați cu superutilizatorul și furnizăm parola utilizatorului.
Creați un utilizator nou
Acum că ne aflăm în serverul nostru MySQL, putem instrui MySQL să creeze un utilizator nou cu următoarea interogare:
CREAȚI UTILIZATOR „new_user” @ „localhost” IDENTIFICAT DE „parolă”;
Sfat : Folosiți întotdeauna o parolă puternică pentru toate conturile. Ceea ce poți.
Un alt lucru interesant despre această comandă este că numele de gazdă al noului utilizator pe care tocmai l-am creat poate fi un nume de gazdă sau o adresă IP diferită dacă dorim ca utilizatorul să se conecteze de la distanță.
Ca exemplu:
CREAȚI UTILIZATOR „new_user” @ „10.20.30.111” IDENTIFICAT DE „parolă”;
Să presupunem că vrem să acordăm noilor noastre drepturi de acces utilizatorilor, astfel încât aceștia să poată citi datele din toate bazele de date de pe serverul nostru MySQL. Facem acest lucru introducând următoarea comandă:
GRANT SELECT ON *. * CĂTRE „new_user” @ „localhost”;
Când executăm interogarea de mai sus, instruim MySQL să acorde noului nostru utilizator permisiunea de a folosi comanda SELECT pentru a citi din baza de date de pe serverul nostru MySQL, am folosit cuvântul cheie SELECT pentru a face acest lucru. GRANT SELECT îi spune MySQL că utilizatorul nu va avea decât permisiuni de a citi date din baza de date sau bazele de date date. Permisiunile sunt acordate în general în următorul format:
ACORDA