Lai izveidotu jaunu lietotāju MySQL, jums ir ne­pie­cie­ša­mas pie­tie­ka­mas ad­mi­nis­tra­to­ra tiesības vai su­perlie­to­tā­ja pri­vi­lē­ģi­jas, kas ļauj izveidot lietotāju kontus un pārvaldīt atļaujas, papildus piekļuvei at­tie­cī­ga­jai datu bāzei. Jums arī jāzina, kāda veida piekļuve ir ne­pie­cie­ša­ma jaunajam lie­to­tā­jam, vai tā ir lasīšanas tiesības, rak­stī­ša­nas tiesības vai pat ad­mi­nis­tra­to­ra tiesības.

Kā lietot MySQL CREATE USER komandu

In­sta­lē­jot datu bāzes pār­val­dī­bas sistēmu, MySQL au­to­mā­tis­ki izveido root kontu. Šis konts nodrošina pilnīgu kontroli pār datu bāzēm, tabulām un lie­to­tā­jiem, ļaujot efektīvi veikt ad­mi­nis­trē­ša­nu. Ja ne­pie­cie­ša­ma palīdzība in­sta­lā­ci­jas procesā, mūsu MySQL apmācībā ir atrodama visa ne­pie­cie­ša­mā in­for­mā­ci­ja.

Ar savu root kontu varat izveidot papildu lietotāju kontus vai jaunus MySQL lie­to­tā­jus un piešķirt tiem atļaujas. Ubuntu sistēmās ar MySQL 5.7 vai jaunākām versijām MySQL root lietotājs pēc no­klu­sē­ju­ma ir kon­fi­gu­rēts tā, lai au­ten­ti­fi­cē­tos ar auth_socket spraudni, nevis paroli. Tas nozīmē, ka, ja sistēmas lietotāja vārds, kas izsauc MySQL klientu, atšķiras no komandā norādītā MySQL lietotāja vārda, jums būs jā­pie­vie­no komandai prefikss sudo, lai iegūtu piekļuvi savam root kontam:

$ sudo mysql
bash

Lai izveidotu jaunu lietotāju MySQL, iz­man­to­jiet komandu CREATE USER. Tas ļauj izveidot lietotāju ar konkrētu lie­to­tājvār­du un paroli:

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

Aiz­stā­jiet username ar savu izvēlēto lie­to­tājvār­du. host punktā ievadiet tā servera nosaukumu, no kura jaunais lietotājs varēs izveidot sa­vie­no­ju­mu. Ja lie­to­tā­jam ir jābūt piekļuvei datu bāzei tikai no jūsu vietējā Ubuntu servera, varat ievadīt localhost.

Iz­vē­lo­ties au­ten­ti­fi­kā­ci­jas spraudni, jums ir vairākas iespējas. Spraudne auth_socket nodrošina augstu drošību, pieprasot lie­to­tā­jiem ievadīt paroli, lai piekļūtu datu bāzei. Tomēr tā ierobežo at­tā­li­nā­tos sa­vie­no­ju­mus, kas var radīt papildu grūtības ārējām prog­ram­mām, kas mi­jie­dar­bo­jas ar MySQL. Al­ter­na­tī­vi, jūs varat izlaist komandas daļu WITH authentication_plugin, lai au­ten­ti­fi­cē­tu lie­to­tā­jus, iz­man­to­jot MySQL standarta spraudni caching_sha2_password. Tādā gadījumā komanda iz­ska­tī­tos šādi:

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

Kad esat iz­vei­do­jis jaunu lietotāju, jums ir jāpiešķir viņam atļaujas.

Kā piešķirt tiesības lie­to­tā­jiem MySQL

Lietotāju tiesību izveide un pār­val­dī­ba ir būtiska, lai uzturētu datu drošību MySQL. Vispārīgā komanda lietotāju tiesību pie­šķir­ša­nai ir:

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

Vērtība PRIVILEGE nosaka, kādas darbības lietotājs var veikt no­rā­dī­ta­jā datu bāzē un tabulā. Šo vērtību var aizstāt ar šādām komandām, cita starpā:

  • CREATE: Ļauj lie­to­tā­jiem izveidot datu bāzi vai tabulu
  • SELECT: ļauj lie­to­tā­jiem iegūt datus
  • INSERT: ļauj lie­to­tā­jiem pievienot jaunus ierakstus tabulās
  • UPDATE: ļauj lie­to­tā­jiem mainīt esošos ierakstus tabulās
  • DELETE: ļauj lie­to­tā­jiem dzēst ierakstus tabulās
  • DROP: ļauj lie­to­tā­jiem dzēst visas datu bāzes tabulas

Jūs varat arī piešķirt jauniem lie­to­tā­jiem vairākas pri­vi­lē­ģi­jas vien­lai­kus. Šādā gadījumā pri­vi­lē­ģi­jas ir jāatdala ar komatu:

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

Atļaujas visām datu bāzēm vai tabulām var piešķirt arī ar vienu komandu, ievadot * vietā atsevišķu datu bāzes un tabulu nosaukumu. Piemēram, šī komanda piešķir lie­to­tā­jam atļauju veikt datu pie­pra­sī­ju­mus (SELECT), pievienot jaunus ierakstus (INSERT) un mainīt esošos ierakstus (UPDATE) visās datu bāzēs un tabulās.

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

Kad esat iz­pil­dī­jis CREATE USER vai GRANT komandas MySQL, varat izmantot FLUSH PRIVILEGES komandu, lai at­jau­ni­nā­tu datu bāzi. Tas atkārtoti ielādē au­to­ri­zā­ci­jas tabulas, no­dro­ši­not, ka jaunas au­to­ri­zā­ci­jas tiek ieviestas:

mysql> FLUSH PRIVILEGES;
bash

Tomēr ir svarīgi piešķirt lie­to­tā­jiem tikai tās atļaujas, kas viņiem ir ne­pie­cie­ša­mas. Ja lie­to­tā­jam piešķir pilnīgu kontroli, tas var radīt augstu drošības risku.

Kā atcelt lietotāju tiesības MySQL

Komanda REVOKE tiek izmantota, lai atceltu lietotāja tiesības MySQL. Sintakse ir līdzīga komandas GRANT sintaksei. Tomēr, iz­man­to­jot šo komandu, jums ir jāizmanto FROM, nevis TO:

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

Lai parādītu lietotāja pa­šrei­zē­jās atļaujas, varat izmantot komandu SHOW GRANTS:

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

Lai dzēstu lietotāju, varat izmantot komandu DROP:

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

Jums jābūt ļoti uz­ma­nī­giem, dzēšot lie­to­tā­jus, jo īpaši lie­to­tā­jus ar ad­mi­nis­tra­to­ra tiesībām. Lai iz­vai­rī­tos no ne­gri­bē­tas datu zau­dē­ša­nas, pār­lie­ci­nie­ties, ka dzēšat tikai tos lie­to­tā­jus, kurus patiešām vēlaties dzēst.

Kad esat pabeidzis jaunu MySQL lietotāju izveidi un piešķīris viņiem tiesības, varat iziet no MySQL klienta:

mysql> exit
bash

45d969e266677cabb44ceaf95418e879

bf812055a1ab3935cb15b43974c56856

01524320532809020958f4b5d042b02d

1b67cfdd89611352c3472ca463d3de9f

26285f4721b20b07e60196b9449d21e7

Go to Main Menu