Uuden käyttäjän luominen ja käyttöoikeuksien myöntäminen MySQL:ssä


MySQL on suosittu ja laajalti käytetty tietokannan hallintajärjestelmä, joka tallentaa ja järjestää tietoja ja antaa käyttäjille mahdollisuuden hakea niitä. Siinä on laaja valikoima vaihtoehtoja, jotka myöntävät käyttäjille tiettyjä oikeuksia taulukoihin ja tietokantoihin.

Tässä oppaassa opit luomaan uuden käyttäjän ja myöntämään käyttöoikeuksia MySQL-tietokannassa.

Kuinka luoda uusi käyttäjä MySQL:ssä

Luodaksesi uuden käyttäjän kirjaudu ensin sisään MySQL-kuoreen.

sudo mysql -u root -p

Anna sudo-salasana ja sen jälkeen salasana, jonka annoit MySQL-tietokantaa määrittäessäsi ja paina ENTER. Sen jälkeen saat tämän kehotteen.

Luo uusi käyttäjä käyttämällä alla näkyvää syntaksia:

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

Jos haluat esimerkiksi luoda tietokantaan uuden käyttäjän nimeltä tecmint, käynnistä komento:

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

Muutamia huomioitavia seikkoja

Kun lisäät käyttäjän paikallisesti, eli järjestelmään, johon olet asentanut MySQL:n, käyttäjän isäntänä määritetään localhost, ei IP-osoite. Avainsana localhost tarkoittaa tätä tietokonetta, ja MySQL käsittelee sitä yksilöllisesti. Pohjimmiltaan mysql-asiakas käyttää localhostia yhteyden muodostamiseen paikallisesti asennettuun MySQL-tietokantapalvelimeen.

Toistaiseksi tecmint-käyttäjällä ei ole oikeuksia olla vuorovaikutuksessa tietokantojen kanssa. Itse asiassa käyttäjä ei voi edes käyttää MySQL-kuorta.

Anna käyttäjälle täysi käyttöoikeus kaikkiin tietokantoihin, mukaan lukien taulukot, suorita.

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

Yllä olevassa komennossa tähdet osoittavat tietokantaan ja vastaavasti taulukkoon, joita käyttäjä voi käyttää. Se antaa käyttäjälle kaikki tietokannan oikeudet – lukea, kirjoittaa, muokkaa ja suorita mukaan lukien kaikki myös muiden tietokantojen ja taulukoiden tehtävät.

Toistaiseksi olemme antaneet käyttäjälle täyden pääsyn tietokantaan. Vaikka tämä on kätevää MySQL-käsitteiden selittämisessä, sitä ei yleensä suositella, koska se voi aiheuttaa tietokantojesi tietoturvariskin. Ajattele vain, mitä voisi tapahtua, jos hakkeri saa haltuunsa käyttäjän salasanan. Jatkamme edelleen ja keskustelemme seuraavassa osiossa tiettyjen käyttöoikeuksien määrittämisestä.

Kun olet määrittänyt käyttöoikeudet käyttäjälle, lataa kaikki oikeudet uudelleen kuvan mukaisesti, jotta muutokset tulevat voimaan.

MariaDB [none]> FLUSH PRIVILEGES

Erilaisten käyttöoikeuksien myöntäminen

Tässä on erittely mahdollisista käyttöoikeuksista, jotka voit myöntää käyttäjille:

  • KAIKKI OIKEUDET – Kuten aiemmin nähtiin, tämä antaa MySQL-käyttäjälle täyden pääsyn tiettyyn tietokantaan.
  • LUO – Käyttäjät voivat luoda uusia tietokantoja tai taulukoita.
  • DROP – Antaa käyttäjien poistaa tietokantoja tai käyttäjiä.
  • LISÄÄ – Käyttäjät voivat lisätä rivejä taulukoihin.
  • POISTA – Käyttäjät voivat poistaa rivejä taulukoista.
  • VALITSE – VALITSE-luvalla käyttäjät voivat lukea taulukon sisällön.
  • PÄIVITYS – Käyttäjät voivat päivittää taulukon rivit.
  • MYÖNTÄ VAIHTOEHTO – Käyttäjät voivat myöntää tai poistaa muiden käyttäjien oikeuksia.

Anna tietylle käyttäjälle käyttöoikeus käyttämällä syntaksia:

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

Lisäksi voit määrittää käyttöoikeudet tietokannan kaikille taulukoille yhdellä tähtimerkillä kuvan osoittamalla tavalla:

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

Jos esimerkiksi haluat määrittää SELECT-oikeudet tecmint-käyttäjälle kaikissa tietokannan testdb taulukoissa, suorita komento.

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

Huuhtele sitten oikeudet, jotta muutokset tulevat voimaan.

MariaDB [none]> FLUSH PRIVILEGES;

Lisäksi voit määrittää useita käyttöoikeuksia kerralla erottamalla ne pilkulla kuvan osoittamalla tavalla.

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

Kuinka peruuttaa MySQL-oikeudet

Voit peruuttaa käyttöoikeudet käyttäjältä käyttämällä syntaksia:

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

Jos esimerkiksi haluat peruuttaa INSERT-oikeudet käyttäjältä tecmint, suorita komento.

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

Voit tarkastella käyttäjän nykyisiä käyttöoikeuksia suorittamalla:

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

Alla olevasta tulosteesta voimme nähdä, että INSERT-käyttöoikeus on poistettu käyttäjältä tecmint, joten jäljelle jää vain SELECT ja UPDATE oikeudet testdb-tietokantaan.

Jos haluat testata MySQL-kuoreen kirjautumista uudella käyttäjällä, kirjaudu ensin ulos.

MariaDB [none]> quit;

Kirjaudu sitten uudelleen sisään.

sudo mysql -u tecmint -p

Anna käyttäjän salasana ja paina ENTER päästäksesi komentotulkoon.

Jos haluat poistaa käyttäjän, käytä DROP-komentoa aivan kuten poistat tietokannan.

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

Saatat myös haluta lukea seuraavat MySQL:ään liittyvät artikkelit:

  • Hyödyllisiä vinkkejä MySQL:n yleisten virheiden vianmääritykseen
  • Mytop – Hyödyllinen työkalu MySQL/MariaDB-suorituskyvyn seurantaan Linuxissa
  • Kuinka muuttaa MySQL/MariaDB-oletusportti Linuxissa
  • MySQL- tai MariaDB-pääsalasanan palauttaminen Linuxissa
Johtopäätös

Toivottavasti tähän mennessä voit luoda käyttäjiä MySQL-tietokantapalvelimillesi ja määrittää tai peruuttaa käyttöoikeuksia mukavasti.