Kaip sukurti naują vartotoją ir suteikti leidimus MySQL


MySQL yra populiari ir plačiai naudojama duomenų bazių valdymo sistema, kuri saugo ir tvarko duomenis ir leidžia vartotojams juos nuskaityti. Jame yra daugybė parinkčių, suteikiančių vartotojams tam tikrus leidimus į lenteles ir duomenų bazes.

Šiame vadove sužinosite, kaip sukurti naują vartotoją ir suteikti leidimus MySQL duomenų bazėje.

Kaip sukurti naują vartotoją MySQL

Norėdami sukurti naują vartotoją, pirmiausia prisijunkite prie MySQL apvalkalo.

sudo mysql -u root -p

Pateikite sudo slaptažodį, po kurio – slaptažodį, kuris buvo pateiktas nustatant MySQL duomenų bazę, ir paspauskite ENTER. Po to gausite šį raginimą.

Norėdami sukurti naują vartotoją, naudokite toliau pateiktą sintaksę:

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

Pavyzdžiui, norėdami sukurti naują vartotoją pavadinimu tecmint duomenų bazėje, iškvieskite komandą:

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

Keletas punktų, kuriuos reikia atsiminti

Kai pridedate vartotoją lokaliai, t. y. sistemoje, kurioje įdiegėte MySQL, naudotojo priegloba nurodoma kaip localhost, o ne IP adresas. Raktinis žodis „localhost“ reiškia „šis kompiuteris“, o „MySQL“ jį traktuoja unikaliai. Iš esmės „localhost“ naudoja mysql klientas, kad užmegztų ryšį su vietoje įdiegtu „MySQL“ duomenų bazės serveriu.

Kol kas tecmint vartotojas neturi jokių leidimų bendrauti su duomenų bazėmis. Tiesą sakant, vartotojas net negali pasiekti MySQL apvalkalo.

Norėdami suteikti vartotojui visišką prieigą prie visų duomenų bazių, įskaitant lenteles, paleiskite.

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

Aukščiau pateiktoje komandoje žvaigždutės nurodo duomenų bazę ir lentelę, kurią vartotojas gali pasiekti. Tai suteikia vartotojui visas teises į duomenų bazę – skaityti, rašyti, redaguoti, ir vykdyti, įskaitant visų užduotis ir kitose duomenų bazėse bei lentelėse.

Iki šiol vartotojui suteikėme visišką prieigą prie duomenų bazės. Nors tai patogu paaiškinti MySQL sąvokas, paprastai tai nerekomenduojama, nes tai gali kelti pavojų jūsų duomenų bazių saugumui. Pagalvokite, kas gali nutikti, jei įsilaužėlis gautų vartotojo slaptažodį. Toliau tęsime ir aptarsime, kaip priskirti konkrečius leidimus kitame skyriuje.

Kai baigsite priskirti leidimus vartotojui, iš naujo įkelkite visas teises, kaip parodyta, kad pakeitimai įsigaliotų.

MariaDB [none]> FLUSH PRIVILEGES

Kaip suteikti skirtingus vartotojo leidimus

Toliau pateikiamas galimų leidimų, kuriuos galite suteikti naudotojams, suskirstymas:

  • VISOS PRIVILEGIJOS – kaip matėme anksčiau, tai suteikia MySQL vartotojui visišką prieigą prie konkrečios duomenų bazės.
  • KURTI – leidžia vartotojams kurti naujas duomenų bazes arba lenteles.
  • DROP – leidžia vartotojams ištrinti duomenų bazes arba vartotojus.
  • ĮTERPTI – leidžia vartotojams įterpti eilutes lentelėse.
  • IŠTRINTI – leidžia naudotojams ištrinti eilutes iš lentelių.
  • PASIRINKTI – turėdami leidimą PASIRINKTI vartotojai gali skaityti lentelės turinį.
  • ATNAUJINTI – leidžia vartotojams atnaujinti lentelės eilutes.
  • SUTEIKTI PARINKTĮ – naudotojai gali suteikti arba panaikinti kitų naudotojų privilegijas.

Norėdami suteikti konkretaus vartotojo leidimą, naudokite sintaksę:

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

Be to, galite priskirti teises visoms duomenų bazės lentelėms su vienu žvaigždutės simboliu, kaip parodyta:

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

Pavyzdžiui, norėdami priskirti SELECT leidimus „tecmint“ vartotojui visose duomenų bazės testdb lentelėse, paleiskite komandą.

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

Tada nuplaukite teises, kad pakeitimai įsigaliotų.

MariaDB [none]> FLUSH PRIVILEGES;

Be to, vienu metu galite priskirti kelis leidimus, atskirdami juos kableliu, kaip parodyta.

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

Kaip atšaukti MySQL leidimus

Norėdami atšaukti vartotojo teises, naudokite sintaksę:

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

Pavyzdžiui, norėdami atšaukti INSERT leidimus iš naudotojo „tecmint“, paleiskite komandą.

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

Norėdami peržiūrėti dabartinius vartotojo leidimus, vykdykite:

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

Iš toliau pateiktos išvesties matome, kad naudotojo TEcmint leidimas buvo panaikintas, paliekant tik SELECT ir UPDATE teises į testdb duomenų bazę.

Norėdami išbandyti prisijungimą prie MySQL apvalkalo naudodami naują vartotoją, pirmiausia atsijunkite.

MariaDB [none]> quit;

Tada vėl prisijunkite.

sudo mysql -u tecmint -p

Pateikite naudotojo slaptažodį ir paspauskite ENTER, kad pasiektumėte apvalkalą.

Jei norite atsisakyti naudotojo, naudokite komandą DROP, kaip ir ištrindami duomenų bazę.

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

Taip pat galbūt norėsite perskaityti šiuos su MySQL susijusius straipsnius:

  • Naudingi patarimai, kaip pašalinti įprastas „MySQL“ klaidas
  • „Mytop“ – naudingas įrankis „MySQL“/„MariaDB“ našumui „Linux“ stebėti
  • Kaip pakeisti numatytąjį „MySQL“/„MariaDB“ prievadą „Linux“.
  • Kaip iš naujo nustatyti „MySQL“ arba „MariaDB“ pagrindinį slaptažodį sistemoje „Linux“.
Išvada

Tikimės, kad iki šiol galėsite sukurti vartotojus savo MySQL duomenų bazės serveriuose ir patogiai priskirti arba atšaukti leidimus.