Norėdami sukurti naują vartotoją MySQL, turite turėti pa­kan­ka­mas ad­mi­nist­ra­to­riaus teises arba su­per­var­to­to­jo pri­vi­le­gi­jas, kurios leidžia kurti vartotojų paskyras ir valdyti leidimus, be to, turite turėti prieigą prie ati­tin­ka­mos duomenų bazės. Taip pat turite žinoti, kokios prieigos reikia naujam var­to­to­jui: skaitymo teisių, rašymo teisių ar net ad­mi­nist­ra­to­riaus teisių.

Kaip naudoti MySQL CREATE USER komandą

Įdiegus duomenų bazių valdymo sistemą, MySQL au­to­ma­tiš­kai sukuria root paskyrą. Ši paskyra suteikia jums vi­sa­pu­siš­ką kontrolę savo duomenų bazėmis, len­te­lė­mis ir var­to­to­jais, leidžiant efek­ty­viai jas ad­mi­nist­ruo­ti. Jei jums rei­ka­lin­ga pagalba įdiegimo procese, mūsų MySQL pamoka turi visą būtiną in­for­ma­ci­ją.

Naudodami savo root paskyrą, galite sukurti pa­pil­do­mas vartotojų paskyras arba naujus MySQL var­to­to­jus ir jiems priskirti leidimus. Ubuntu sistemose su MySQL 5.7 ar nau­jes­nė­mis ver­si­jo­mis MySQL root var­to­to­jas pagal nu­ma­ty­tuo­sius nu­sta­ty­mus yra kon­fi­gū­ruo­tas au­ten­tiš­ku­mui pa­tvir­tin­ti naudoti auth_socket įskiepį, o ne slap­ta­žo­dį. Tai reiškia, kad jei sistemos vartotojo, kuris iššaukia MySQL klientą, vardas skiriasi nuo komandoje nurodyto MySQL vartotojo vardo, norėdami gauti prieigą prie savo root paskyros, komandą turėsite pradėti sudo:

$ sudo mysql
bash

Norėdami sukurti naują vartotoją MySQL, naudokite komandą CREATE USER. Tai leidžia sukurti vartotoją su konkrečiu vartotojo vardu ir slap­ta­žo­džiu:

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

Pa­kei­s­ki­te username savo pa­si­rink­tu vartotojo vardu. host įrašykite kom­piu­te­rio, iš kurio naujas var­to­to­jas galės pri­si­jung­ti, pa­va­di­ni­mą. Jei var­to­to­jas turės prieigą prie duomenų bazės tik iš jūsų vietinio Ubuntu serverio, galite įrašyti localhost.

Renkantis au­ten­tiš­ku­mo pa­tvir­ti­ni­mo įskiepį, turite keletą galimybių. Įskiepis auth_socket užtikrina aukštą saugumą, rei­ka­lau­jant iš vartotojų įvesti slap­ta­žo­dį, kad galėtų pri­si­jung­ti prie duomenų bazės. Tačiau jis riboja nuo­to­li­nius pri­si­jun­gi­mus, todėl išorinėms prog­ra­moms gali prireikti daugiau pastangų, kad galėtų są­vei­kau­ti su MySQL. Al­ter­na­ty­viai, galite praleisti komandos dalį WITH authentication_plugin, kad au­ten­tiš­ku­mą pa­tvir­tin­tu­mė­te naudodami stan­dar­ti­nį MySQL įskiepį caching_sha2_password. Komanda atrodytų taip:

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

Sukūrę naują vartotoją, turite jam priskirti leidimus.

Kaip priskirti teises var­to­to­jams MySQL

Vartotojų teisių kūrimas ir valdymas yra būtinas duomenų saugumo MySQL pa­lai­ky­mui. Bendrasis komandos, skirtos vartotojų teisių pri­sky­ri­mui, yra:

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

Vertė PRIVILEGE nustato, kokius veiksmus var­to­to­jas gali atlikti nu­ro­dy­to­je duomenų bazėje ir lentelėje. Šią vertę galite pakeisti, be kita ko, šiais ko­man­do­mis:

  • CREATE: Leidžia var­to­to­jams kurti duomenų bazę arba lentelę
  • SELECT: Leidžia var­to­to­jams gauti duomenis
  • INSERT: Leidžia var­to­to­jams pridėti naujus įrašus į lenteles
  • UPDATE: Leidžia var­to­to­jams keisti esamus įrašus lentelėse
  • DELETE: Leidžia var­to­to­jams ištrinti lentelių įrašus
  • DROP: Leidžia var­to­to­jams ištrinti visas duomenų bazės lenteles

Taip pat galite naujiems var­to­to­jams suteikti keletą teisių iš karto. Tokiu atveju teises reikia atskirti kab­le­liais:

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

Leidimai naudotis visomis duomenų bazėmis ar len­te­lė­mis taip pat gali būti su­tei­kia­mi vienu ko­man­do­mis, įvedant * vietoj atskirų duomenų bazių ir lentelių pa­va­di­ni­mų. Pa­vyz­džiui, šis komandos suteikia var­to­to­jui leidimą ieškoti duomenų (SELECT), pridėti naujus įrašus (INSERT) ir keisti esamus įrašus (UPDATE) visose duomenų bazėse ir lentelėse.

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

Kai MySQL vykdysite CREATE USER arba GRANT komandas, galėsite naudoti FLUSH PRIVILEGES komandą, kad at­nau­jin­tu­mė­te duomenų bazę. Tai perkraus au­to­ri­za­ci­jos lenteles, už­tik­ri­nant, kad naujos au­to­ri­za­ci­jos bus įsi­ga­lio­ju­sios:

mysql> FLUSH PRIVILEGES;
bash

Tačiau svarbu suteikti var­to­to­jams tik tuos įga­lio­ji­mus, kurių jiems reikia. Jei var­to­to­jui su­tei­kia­te visišką kontrolę, tai gali kelti didelį saugumo pavojų.

Kaip atšaukti vartotojų teises MySQL

Komanda REVOKE naudojama vartotojo teisių pa­ša­li­ni­mui MySQL. Sintaksė yra panaši į komandos GRANT sintaksę. Tačiau su šia komanda reikia naudoti FROM vietoj TO:

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

Norėdami per­žiū­rė­ti da­bar­ti­nius vartotojo leidimus, galite naudoti komandą SHOW GRANTS:

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

Naudodami komandą DROP galite ištrinti vartotoją:

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

Nau­do­to­jus, ypač turinčius ad­mi­nist­ra­to­riaus teises, trinti reikia labai atsargiai. Kad iš­veng­tu­mė­te netyčinio duomenų praradimo, įsi­ti­kin­ki­te, kad trinate tik tuos nau­do­to­jus, kuriuos tikrai norite ištrinti.

Kai baigsite kurti naujus MySQL var­to­to­jus ir suteikti jiems teises, galite uždaryti MySQL klientą:

mysql> exit
bash

45d969e266677cabb44ceaf95418e879

bf812055a1ab3935cb15b43974c56856

01524320532809020958f4b5d042b02d

1b67cfdd89611352c3472ca463d3de9f

26285f4721b20b07e60196b9449d21e7

Go to Main Menu