Kuidas luua kasutajaid MySQLis
Uue kasutaja loomiseks MySQLis peate omama piisavaid administraatoriõigusi või superkasutaja õigusi, mis võimaldavad teil lisaks vastavale andmebaasile juurdepääsule luua kasutajakontosid ja hallata volitusi. Samuti peate teadma, millist juurdepääsu uus kasutaja vajab, kas see on lugemisõigus, kirjutusõigus või isegi administraatoriõigus.
Kuidas kasutada MySQLi CREATE USER käsku
Andmebaasi haldussüsteemi installimisel loob MySQL automaatselt root-konto. See konto annab teile täieliku kontrolli oma andmebaaside, tabelite ja kasutajate üle, võimaldades tõhusat haldamist. Kui vajate abi installimisprotsessiga, leiate meie MySQL-õpetusest kogu vajaliku teabe.
Oma root-kontoga saate luua täiendavaid kasutajakontosid või uusi MySQL-kasutajaid ja määrata neile volitused. Ubuntu süsteemides, kus on MySQL 5.7 või uuem versioon, on MySQL root-kasutaja vaikimisi konfigureeritud end autentima auth_socket pluginaga, mitte parooliga. See tähendab, et kui MySQL-klienti käivitava süsteemi kasutaja nimi erineb käsus määratud MySQL-kasutaja nimest, peate käsule lisama eesliite sudo, et saada juurkasutaja kontosse juurdepääs:
$ sudo mysqlbashUue kasutaja loomiseks MySQLis kasutage käsku CREATE USER. See võimaldab teil luua kasutaja kindla kasutajanime ja parooliga:
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';bashAsenda username oma valitud kasutajanimega. Sisesta host alla selle hosti nimi, kust uus kasutaja saab ühendust luua. Kui kasutaja peaks saama andmebaasile juurde pääseda ainult sinu kohalikust Ubuntu serverist, võid sisestada localhost.
Autentimise pistikprogrammi valimisel on teil mitu võimalust. Pistikprogramm auth_socket pakub kõrget turvalisust, nõudes kasutajatelt parooli sisestamist andmebaasile juurdepääsuks. Siiski piirab see kaugühendusi, mis võib nõuda välistelt programmidelt rohkem pingutusi MySQLiga suhtlemiseks. Alternatiivina võite jätta käsu osa WITH authentication_plugin välja, et autentida kasutajaid MySQLi standardpistikprogrammi caching_sha2_password abil. Siis näeks käsk välja järgmine:
mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';bashKui olete loonud uue kasutaja, peate talle määrama volitused.
Kuidas määrata õigusi kasutajatele MySQLis
Kasutajaõiguste loomine ja haldamine on MySQL-is andmete turvalisuse tagamiseks hädavajalik. Kasutajaõiguste määramise üldine käsk on:
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';bashVäärtus PRIVILEGE määrab, milliseid toiminguid kasutaja saab teha määratud andmebaasis ja tabelis. Selle väärtuse saab asendada muu hulgas järgmiste käskudega:
CREATE: Võimaldab kasutajatel luua andmebaasi või tabeliSELECT: Võimaldab kasutajatel andmeid otsidaINSERT: võimaldab kasutajatel lisada tabelitesse uusi kirjeidUPDATE: võimaldab kasutajatel muuta tabelites olevaid kirjeidDELETE: võimaldab kasutajatel kustutada tabelite kirjeidDROP: võimaldab kasutajatel kustutada terveid andmebaasi tabeleid
Võite uuele kasutajale anda ka mitu õigust korraga. Sel juhul tuleb õigused eraldada komaga:
mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';bashKõigi andmebaaside või tabelite jaoks võibvolitused anda ka üheainsa käsuga, sisestades * asemel üksikute andmebaaside ja tabelite nimed. Näiteks järgmine käsk annab kasutajale volituse küsida andmeid (SELECT), lisada uusi kirjeid (INSERT) ja muuta olemasolevaid kirjeid (UPDATE) kõigis andmebaasides ja tabelites.
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';bashKui olete MySQLis CREATE USER või GRANT käsku täitnud, saate FLUSH PRIVILEGES käskuga andmebaasi uuendada. See laadib autoriseerimistabelid uuesti, tagades uute autoriseeringute jõustumise:
mysql> FLUSH PRIVILEGES;bashSiiski on oluline anda kasutajatele ainult neile vajalikud volitused. Kui annate kasutajale täieliku kontrolli, võib see kujutada endast suurt turvariski.
Kuidas tühistada kasutajate õigused MySQLis
Käsk REVOKE kasutatakse kasutajaõiguste eemaldamiseks MySQL-is. Süntaaks on sarnane käsuga GRANT. Siiski peate selle käsuga kasutama FROM asemel TO:
mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';bashKasutaja praeguste volituste kuvamiseks võite kasutada käsku SHOW GRANTS:
mysql> SHOW GRANTS FOR 'username'@'host';bashKasutaja saate kustutada käsuga DROP:
mysql> DROP USER 'username'@'localhost';bashKasutajate, eriti administraatoriõigustega kasutajate kustutamisel tuleb olla äärmiselt ettevaatlik. Veenduge, et kustutate ainult need kasutajad, keda tõesti soovite kustutada, et vältida soovimatut andmete kaotust.
Kui olete lõpetanud uute MySQL-kasutajate loomise ja neile õiguste andmise, võite MySQL-kliendist väljuda:
mysql> exitbash45d969e266677cabb44ceaf95418e879
bf812055a1ab3935cb15b43974c56856
01524320532809020958f4b5d042b02d