Kuidas luua uus kasutaja ja anda õigusi MySQL-is


MySQL on populaarne ja laialt kasutatav andmebaaside haldussüsteem, mis salvestab ja korrastab andmeid ning võimaldab kasutajatel neid hankida. Sellel on suur valik valikuid, mis annavad kasutajatele teatud õigused tabelitele ja andmebaasidele.

Selles juhendis saate teada, kuidas luua uus kasutaja ja anda õigusi MySQL-i andmebaasis.

Kuidas luua MySQL-is uut kasutajat

Uue kasutaja loomiseks logige esmalt sisse MySQL-i kestale.

$ sudo mysql -u root -p

Sisestage sudo parool, millele järgneb parool, mis anti MySQL-i andmebaasi seadistamisel, ja vajutage sisestusklahvi ENTER. Seejärel saate selle viiba.

Uue kasutaja loomiseks kasutage allpool näidatud süntaksit:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Näiteks uue kasutaja nimega 'tecmint' loomiseks andmebaasis kutsuge käsk:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Kasutaja lisamisel lokaalselt, st süsteemis, mille olete installinud MySQL, määratakse kasutaja hosti nimeks localhost, mitte IP-aadress. Märksõna ’localhost’ tõlgib ‘see arvuti’ ja MySQL käsitleb seda ainulaadselt. Põhimõtteliselt kasutab myshl klient localhosti ühenduse loomiseks kohalikult installitud MySQL andmebaasiserveriga.

Siiani pole tecminti kasutajal mingeid õigusi andmebaasidega suhtlemiseks. Tegelikult ei pääse kasutaja isegi MySQL-i kestale juurde.

Andke kasutajale täielik juurdepääs kõikidele andmebaasidele, sealhulgas tabelitele.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

Ülaltoodud käsus osutavad tärnid vastavalt andmebaasile ja tabelile, millele kasutajal on juurdepääs. See annab kasutajale kõik õigused andmebaasis - lugeda, kirjutada, redigeerida ja teostada, sealhulgas täita kõiki ülesandeid ka teistes andmebaasides ja tabelites.

Siiani oleme andnud kasutajale täieliku juurdepääsu andmebaasile. Ehkki see on MySQL-i kontseptsioonide selgitamisel mugav, pole see üldiselt soovitatav, kuna see võib teie andmebaasidele tekitada turvariski. Mõelge vaid sellele, mis võib juhtuda, kui häkker saaks kasutaja parooli kätte. Jätkame edasi ja arutame järgmises jaotises konkreetsete lubade määramist.

Kui olete kasutajale õigused määranud, laadige muudatuste jõustumiseks uuesti kõik õigused, nagu on näidatud.

MariaDB [none]> FLUSH PRIVILEGES

Kuidas anda kasutajale erinevaid õigusi

Siin on toodud võimalike lubade jaotus, mille saate kasutajatele anda:

  • KÕIK PRIVILEGEED - Nagu varem näha, annab see MySQL-i kasutajale täieliku juurdepääsu konkreetsele andmebaasile.
  • LOOMINE - võimaldab kasutajatel luua uusi andmebaase või tabeleid.
  • DROP - võimaldab kasutajatel andmebaase või kasutajaid kustutada.
  • INSERT - võimaldab kasutajatel tabelitesse ridu lisada.
  • KUSTUTA - võimaldab kasutajatel tabelitest ridu kustutada.
  • SELECT - loaga „SELECT” saavad kasutajad tabeli sisu lugeda.
  • UPDATE - võimaldab kasutajatel tabeli ridu värskendada.
  • GRANT VALIK - kasutajad saavad anda või eemaldada teiste kasutajate privileege.

Konkreetse kasutaja loa andmiseks kasutage süntaksit:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Lisaks saate määrata õigused andmebaasi kõigile tabelitele ühe tärniga sümboliga, nagu näidatud:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Näiteks SELECT-õiguste määramiseks kasutajale 'tecmint' andmebaasi testdb kõikides tabelites käivitage käsk.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Seejärel muutke muudatuste jõustumiseks privileegid.

MariaDB [none]> FLUSH PRIVILEGES;

Lisaks saate korraga omistada mitu õigust, eraldades need komaga, nagu näidatud.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Kuidas tühistada MySQL-i õigused

Kasutaja õiguste tühistamiseks kasutage süntaksit:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Näiteks kasutaja 'tecmint' INSERT-õiguste tühistamiseks käivitage käsk.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

Kasutaja praeguste lubade vaatamiseks toimige järgmiselt.

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Allpool olevast väljundist näeme, et INSERT-i luba on tecmint-kasutajalt tühistatud, jättes testdb andmebaasi ainult SELECT ja UPDATE õigused.

Uue kasutaja abil MySQL-i kestasse sisselogimise testimiseks logige kõigepealt välja.

MariaDB [none]> quit;

Seejärel logige uuesti sisse.

$ sudo mysql -u tecmint -p

Shellile juurdepääsu saamiseks sisestage kasutaja parool ja vajutage sisestusklahvi ENTER.

Kasutaja loobumiseks kasutage käsku DROP, täpselt nagu andmebaasi kustutamisel.

MariaDB [none]> DROP USER 'username'@'localhost';

Samuti võiksite lugeda järgmisi MySQL-iga seotud artikleid:

  • Kasulikud näpunäited MySQL-i levinud vigade tõrkeotsinguks
  • Mytop - kasulik tööriist MySQL/MariaDB jõudluse jälgimiseks Linuxis
  • Kuidas muuta Linuxi MySQL/MariaDB vaikeporti
  • Kuidas lähtestada MySQL või MariaDB juurparool Linuxis

Loodetavasti saate praeguseks luua kasutajaid oma MySQL-i andmebaasiserveritesse ja mugavalt õigusi määrata või tühistada.