Uue kasutaja loomiseks MySQLis peate omama piisavaid ad­mi­nist­raa­to­ri­õi­gusi või su­per­ka­su­taja õigusi, mis või­mal­da­vad teil lisaks vastavale and­me­baasile juur­de­pää­sule luua ka­su­ta­ja­kon­to­sid ja hallata volitusi. Samuti peate teadma, millist juur­de­pääsu uus kasutaja vajab, kas see on lu­ge­mis­õi­gus, kir­ju­tus­õi­gus või isegi ad­mi­nist­raa­to­ri­õi­gus.

Kuidas kasutada MySQLi CREATE USER käsku

And­me­ba­asi hal­dus­süs­teemi ins­tal­li­misel loob MySQL au­to­maat­selt root-konto. See konto annab teile täieliku kontrolli oma and­me­baaside, tabelite ja ka­su­ta­jate üle, või­mal­da­des tõhusat haldamist. Kui vajate abi ins­tal­li­mis­prot­ses­siga, leiate meie MySQL-õpetusest kogu vajaliku teabe.

Oma root-kontoga saate luua täien­da­vaid ka­su­ta­ja­kon­to­sid või uusi MySQL-ka­su­ta­jaid ja määrata neile volitused. Ubuntu süs­teemi­des, kus on MySQL 5.7 või uuem versioon, on MySQL root-kasutaja vaikimisi kon­fi­gu­ree­ri­tud end autentima auth_socket pluginaga, mitte parooliga. See tähendab, et kui MySQL-klienti käivitava süsteemi kasutaja nimi erineb käsus määratud MySQL-kasutaja nimest, peate käsule lisama eesliite sudo, et saada juur­ka­su­taja kontosse juur­de­pääs:

$ sudo mysql
bash

Uue kasutaja loomiseks MySQLis kasutage käsku CREATE USER. See võimaldab teil luua kasutaja kindla ka­su­ta­ja­nime ja parooliga:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

Asenda username oma valitud ka­su­ta­ja­ni­mega. Sisesta host alla selle hosti nimi, kust uus kasutaja saab ühendust luua. Kui kasutaja peaks saama and­me­baasile juurde pääseda ainult sinu ko­ha­li­kust Ubuntu serverist, võid sisestada localhost.

Au­ten­ti­mise pis­tik­prog­rammi valimisel on teil mitu võimalust. Pis­tik­prog­ramm auth_socket pakub kõrget tur­va­li­sust, nõudes ka­su­ta­ja­telt parooli si­ses­ta­mist and­me­baasile juur­de­pääs­uks. Siiski piirab see kaug­ühen­dusi, mis võib nõuda välistelt prog­rammi­delt rohkem pingutusi MySQLiga suht­le­miseks. Al­ter­na­tiivina võite jätta käsu osa WITH authentication_plugin välja, et autentida ka­su­ta­jaid MySQLi stan­dard­pis­tik­prog­rammi caching_sha2_password abil. Siis näeks käsk välja järgmine:

mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
bash

Kui olete loonud uue kasutaja, peate talle määrama volitused.

Kuidas määrata õigusi ka­su­ta­ja­tele MySQLis

Ka­su­ta­ja­õi­guste loomine ja haldamine on MySQL-is andmete tur­va­li­suse ta­ga­miseks hä­da­va­ja­lik. Ka­su­ta­ja­õi­guste määramise üldine käsk on:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

Väärtus PRIVILEGE määrab, milliseid toi­min­guid kasutaja saab teha määratud and­me­baasis ja tabelis. Selle väärtuse saab asendada muu hulgas järgmiste käskudega:

  • CREATE: Võimaldab ka­su­ta­ja­tel luua and­me­ba­asi või tabeli
  • SELECT: Võimaldab ka­su­ta­ja­tel andmeid otsida
  • INSERT: võimaldab ka­su­ta­ja­tel lisada ta­be­li­tesse uusi kirjeid
  • UPDATE: võimaldab ka­su­ta­ja­tel muuta tabelites olevaid kirjeid
  • DELETE: võimaldab ka­su­ta­ja­tel kustutada tabelite kirjeid
  • DROP: võimaldab ka­su­ta­ja­tel kustutada terveid and­me­ba­asi tabeleid

Võite uuele ka­su­tajale anda ka mitu õigust korraga. Sel juhul tuleb õigused eraldada komaga:

mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';
bash

Kõigi and­me­baaside või tabelite jaoks võibvolitused anda ka üheainsa käsuga, si­ses­ta­des * asemel üksikute and­me­baaside ja tabelite nimed. Näiteks järgmine käsk annab ka­su­tajale volituse küsida andmeid (SELECT), lisada uusi kirjeid (INSERT) ja muuta ole­mas­ole­vaid kirjeid (UPDATE) kõigis and­me­baasi­des ja tabelites.

mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';
bash

Kui olete MySQLis CREATE USER või GRANT käsku täitnud, saate FLUSH PRIVILEGES käskuga and­me­ba­asi uuendada. See laadib au­to­ri­see­ri­mis­ta­belid uuesti, tagades uute au­to­ri­see­rin­gute jõus­tu­mise:

mysql> FLUSH PRIVILEGES;
bash

Siiski on oluline anda ka­su­ta­ja­tele ainult neile vajalikud volitused. Kui annate ka­su­tajale täieliku kontrolli, võib see kujutada endast suurt tur­va­riski.

Kuidas tühistada ka­su­ta­jate õigused MySQLis

Käsk REVOKE ka­su­ta­takse ka­su­ta­ja­õi­guste eemal­da­miseks MySQL-is. Süntaaks on sarnane käsuga GRANT. Siiski peate selle käsuga kasutama FROM asemel TO:

mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';
bash

Kasutaja praeguste volituste ku­va­miseks võite kasutada käsku SHOW GRANTS:

mysql> SHOW GRANTS FOR 'username'@'host';
bash

Kasutaja saate kustutada käsuga DROP:

mysql> DROP USER 'username'@'localhost';
bash

Ka­su­ta­jate, eriti ad­mi­nist­raa­to­ri­õi­gus­tega ka­su­ta­jate kus­tu­ta­misel tuleb olla äärmiselt et­te­vaat­lik. Veenduge, et kustutate ainult need kasutajad, keda tõesti soovite kustutada, et vältida soo­vi­ma­tut andmete kaotust.

Kui olete lõpetanud uute MySQL-ka­su­ta­jate loomise ja neile õiguste andmise, võite MySQL-kliendist väljuda:

mysql> exit
bash

45d969e266677cabb44ceaf95418e879

bf812055a1ab3935cb15b43974c56856

01524320532809020958f4b5d042b02d

Go to Main Menu