Kako ustvariti novega uporabnika in odobriti dovoljenja v MySQL


MySQL je priljubljen in pogosto uporabljen sistem za upravljanje z bazami podatkov, ki podatke shranjuje in organizira in uporabnikom omogoča, da jih pridobijo. Na voljo je z široko paleto možnosti, ki uporabnikom podelijo določena dovoljenja za tabele in baze podatkov.

V tem priročniku boste izvedeli, kako ustvarite novega uporabnika in dodelite dovoljenja v zbirki podatkov MySQL.

Kako ustvariti novega uporabnika v MySQL

Če želite ustvariti novega uporabnika, se najprej prijavite v lupino MySQL.

$ sudo mysql -u root -p

Navedite sudo geslo, ki mu sledi geslo, ki ste ga navedli pri nastavitvi baze podatkov MySQL, in pritisnite ENTER. Nato boste dobili ta poziv.

Če želite ustvariti novega uporabnika, uporabite spodnjo sintakso:

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

Če želite na primer v bazi podatkov ustvariti novega uporabnika, imenovanega 'tecmint', pokličite ukaz:

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

Pri lokalnem dodajanju uporabnika, tj. V sistemu, v katerega ste namestili MySQL, je gostitelj uporabnika določen kot localhost in ne naslov IP. Ključna beseda "localhost" se prevede v "ta računalnik", MySQL pa jo obravnava edinstveno. V bistvu localhost odjemalec mysql uporablja za vzpostavitev povezave z lokalno nameščenim strežnikom baz podatkov MySQL.

Zaenkrat uporabnik tecmint nima nobenih dovoljenj za interakcijo z bazami podatkov. Pravzaprav uporabnik ne more dostopati niti do lupine MySQL.

Če želite uporabniku omogočiti poln dostop do vseh zbirk podatkov, vključno s tabelami, zaženite.

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

Zgornje zvezdice v zgornjem ukazu kažejo na bazo podatkov oziroma tabelo, do katere lahko uporabnik dostopa. Uporabniku podeli vse pravice do zbirke podatkov - branje, pisanje, urejanje in izvajanje, vključno z izvajanjem vseh nalog v drugih zbirkah podatkov in tabelah.

Do zdaj smo uporabniku omogočili popoln dostop do baze podatkov. Čeprav je to priročno pri razlagi konceptov MySQL, na splošno ni priporočljivo, saj bi lahko predstavljalo varnostno tveganje za vaše zbirke podatkov. Samo pomislite, kaj bi se lahko zgodilo, če bi heker dobil uporabniško geslo. Nadaljevali bomo in v naslednjem razdelku razpravljali o tem, kako dodeliti določena dovoljenja.

Ko končate z dodeljevanjem dovoljenj uporabniku, znova naložite vse privilegije, kot je prikazano, da spremembe začnejo veljati.

MariaDB [none]> FLUSH PRIVILEGES

Kako dodeliti različna uporabniška dovoljenja

Tu je razčlenitev možnih dovoljenj, ki jih lahko dodelite uporabnikom:

  • VSE PRIVILEGIJE - Kot smo že videli, to uporabniku MySQL omogoča popoln dostop do določene baze podatkov.
  • USTVARI - uporabnikom omogoča ustvarjanje novih zbirk podatkov ali tabel.
  • DROP - uporabnikom omogoča brisanje baz podatkov ali uporabnikov.
  • INSERT - uporabnikom omogoča vstavljanje vrstic v tabele.
  • DELETE - uporabnikom omogoča brisanje vrstic iz tabel.
  • SELECT - z dovoljenjem ‘SELECT’ lahko uporabniki preberejo vsebino tabele.
  • UPDATE - uporabnikom omogoča posodobitev vrstic v tabeli.
  • PODELITEV MOŽNOSTI - Uporabniki lahko odobrijo ali odstranijo privilegije drugih uporabnikov.

Če želite dodeliti dovoljenje določenemu uporabniku, uporabite sintakso:

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

Poleg tega lahko vsem tabelam v zbirki podatkov dodelite dovoljenja z eno samo zvezdico, kot je prikazano:

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

Če želite na primer uporabniku ‘tecmint’ dodeliti dovoljenja SELECT v vseh tabelah zbirke podatkov testdb, zaženite ukaz.

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

Nato splaknite privilegije, da spremembe začnejo veljati.

MariaDB [none]> FLUSH PRIVILEGES;

Poleg tega lahko naenkrat dodelite več dovoljenj, tako da jih ločite z vejico, kot je prikazano.

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

Kako preklicati dovoljenja MySQL

Če želite uporabniku preklicati dovoljenja, uporabite sintakso:

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

Če želite na primer uporabniku ‘tecmint’ preklicati dovoljenja INSERT, zaženite ukaz.

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

Če si želite ogledati trenutna dovoljenja uporabnika, izvedite:

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

Iz spodnjega izhoda lahko vidimo, da je bilo dovoljenje INSERT izbrisano iz uporabnika ‘tecmint’, tako da sta v zbirki podatkov testdb ostali samo pravici SELECT in UPDATE.

Če želite preizkusiti prijavo v lupino MySQL z novim uporabnikom, se najprej odjavite.

MariaDB [none]> quit;

Nato se znova prijavite.

$ sudo mysql -u tecmint -p

Vnesite uporabniško geslo in pritisnite ENTER za dostop do lupine.

Če želite uporabnika spustiti, uporabite ukaz DROP, tako kot pri brisanju baze podatkov.

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

Morda bi radi prebrali tudi naslednje članke, povezane z MySQL:

  • Koristni nasveti za odpravljanje pogostih napak v MySQL
  • Mytop - uporabno orodje za spremljanje učinkovitosti MySQL/MariaDB v Linuxu
  • Kako spremeniti privzeta vrata MySQL/MariaDB v Linuxu
  • Kako ponastaviti root geslo MySQL ali MariaDB v Linuxu

Upajmo, da lahko že zdaj ustvarite uporabnike v strežnikih zbirke podatkov MySQL in udobno dodelite ali prekličete dovoljenja.