Kā izveidot jaunu lietotāju un piešķirt atļaujas MySQL


MySQL ir populāra un plaši izmantota datu bāzu pārvaldības sistēma, kas uzglabā un organizē datus un ļauj lietotājiem tos izgūt. Tas nāk ar plašu iespēju klāstu, kas lietotājiem piešķir noteiktas atļaujas tabulām un datu bāzēm.

Šajā ceļvedī jūs uzzināsiet, kā izveidot jaunu lietotāju un piešķirt atļaujas MySQL datu bāzē.

Kā izveidot jaunu lietotāju MySQL

Lai izveidotu jaunu lietotāju, vispirms piesakieties MySQL čaulā.

$ sudo mysql -u root -p

Norādiet sudo paroli, kurai seko parole, kas tika norādīta, iestatot MySQL datu bāzi, un nospiediet taustiņu ENTER. Pēc tam jūs saņemsit šo uzvedni.

Lai izveidotu jaunu lietotāju, izmantojiet zemāk redzamo sintaksi:

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

Piemēram, lai datu bāzē izveidotu jaunu lietotāju ar nosaukumu “tecmint”, izsauciet komandu:

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

Pievienojot lietotāju lokāli, t.i., sistēmā, kurā esat instalējis MySQL, lietotāja resursdators tiek norādīts kā localhost, nevis IP adrese. Atslēgvārds “localhost” tiek tulkots kā “šis dators”, un MySQL izturas pret to unikāli. Būtībā vietējo hostu mysql klients izmanto, lai izveidotu savienojumu ar lokāli instalēto MySQL datu bāzes serveri.

Līdz šim tecmint lietotājam nav atļauju mijiedarboties ar datu bāzēm. Patiesībā lietotājs pat nevar piekļūt MySQL čaulai.

Piešķirt lietotājam pilnu piekļuvi visām datubāzēm, ieskaitot tabulas, palaist.

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

Iepriekš norādītajā komandā zvaigznītes norāda uz datu bāzi un attiecīgi tabulu, kurai lietotājs var piekļūt. Tas piešķir lietotājam visas tiesības uz datu bāzi - lasīšanu, rakstīšanu, rediģēšanu un izpildi, tostarp visu uzdevumu veikšanu arī citās datu bāzēs un tabulās.

Līdz šim mēs esam piešķīruši lietotājam pilnu piekļuvi datu bāzei. Lai gan tas ir ērti, izskaidrojot MySQL jēdzienus, tas parasti nav ieteicams, jo tas var radīt drošības risku jūsu datu bāzēm. Vienkārši padomājiet, kas varētu notikt, ja hakeris iegūs lietotāja paroli. Mēs turpināsim tālāk un nākamajā sadaļā apspriedīsim, kā piešķirt īpašas atļaujas.

Kad esat piešķīris lietotājam atļaujas, atkārtoti ielādējiet visas privilēģijas, kā parādīts, lai izmaiņas stātos spēkā.

MariaDB [none]> FLUSH PRIVILEGES

Kā piešķirt dažādas lietotāju atļaujas

Šeit ir sniegts iespējamo atļauju, kuras varat piešķirt lietotājiem, sadalījums:

  • VISAS PRIVILĒĢIJAS - kā iepriekš redzēts, tas MySQL lietotājam piešķir pilnīgu piekļuvi noteiktai datu bāzei.
  • IZVEIDOT - ļauj lietotājiem izveidot jaunas datu bāzes vai tabulas.
  • DROP - ļauj lietotājiem dzēst datu bāzes vai lietotājus.
  • INSERT - ļauj lietotājiem tabulās ievietot rindas.
  • DELETE - ļauj lietotājiem dzēst rindas no tabulām.
  • SELECT - ar ‘SELECT’ atļauju lietotāji var nolasīt tabulas saturu.
  • ATJAUNINĀT - ļauj lietotājiem atjaunināt tabulas rindas.
  • GRANT OPTION - lietotāji var piešķirt vai noņemt citu lietotāju privilēģijas.

Lai piešķirtu konkrētu lietotāja atļauju, izmantojiet sintaksi:

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

Turklāt jūs varat piešķirt atļaujas visām datu bāzes tabulām ar vienu zvaigznītes simbolu, kā parādīts:

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

Piemēram, lai piešķirtu SELECT atļaujas lietotājam ‘tecmint’ visās datu bāzes testdb tabulās, palaidiet komandu.

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

Pēc tam mainiet privilēģijas, lai izmaiņas stātos spēkā.

MariaDB [none]> FLUSH PRIVILEGES;

Turklāt vienlaikus varat piešķirt vairākas atļaujas, atdalot tās ar komatu, kā parādīts.

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

Kā atsaukt MySQL atļaujas

Lai atsauktu lietotāja atļaujas, izmantojiet sintaksi:

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

Piemēram, lai atsauktu INSERT atļaujas no lietotāja ‘tecmint’, palaidiet komandu.

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

Lai apskatītu lietotāja pašreizējās atļaujas, izpildiet:

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

No zemāk redzamās izejas mēs varam redzēt, ka INSERT atļauja ir izdzēsta no ‘tecmint’ lietotāja, testdb datu bāzē atstājot tikai SELECT un UPDATE tiesības.

Lai pārbaudītu pieteikšanos MySQL čaulā, izmantojot jauno lietotāju, vispirms izrakstieties.

MariaDB [none]> quit;

Pēc tam piesakieties vēlreiz.

$ sudo mysql -u tecmint -p

Norādiet lietotāja paroli un nospiediet taustiņu ENTER, lai piekļūtu čaulai.

Lai nomestu lietotāju, izmantojiet komandu DROP tāpat kā dzēšot datu bāzi.

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

Varat arī izlasīt šādus ar MySQL saistītus rakstus:

  • Noderīgi padomi, kā novērst MySQL izplatītās kļūdas
  • Mytop - noderīgs rīks MySQL/MariaDB veiktspējas uzraudzībai Linux
  • Kā nomainīt MySQL/MariaDB noklusējuma portu Linux
  • Kā atiestatīt MySQL vai MariaDB saknes paroli operētājsistēmā Linux

Cerams, ka līdz šim jūs varat izveidot lietotājus MySQL datu bāzes serveros un ērti piešķirt vai atsaukt atļaujas.