Kaip kurti vartotojus MySQL
Norėdami sukurti naują vartotoją MySQL, turite turėti pakankamas administratoriaus teises arba supervartotojo privilegijas, kurios leidžia kurti vartotojų paskyras ir valdyti leidimus, be to, turite turėti prieigą prie atitinkamos duomenų bazės. Taip pat turite žinoti, kokios prieigos reikia naujam vartotojui: skaitymo teisių, rašymo teisių ar net administratoriaus teisių.
Kaip naudoti MySQL CREATE USER komandą
Įdiegus duomenų bazių valdymo sistemą, MySQL automatiškai sukuria root paskyrą. Ši paskyra suteikia jums visapusišką kontrolę savo duomenų bazėmis, lentelėmis ir vartotojais, leidžiant efektyviai jas administruoti. Jei jums reikalinga pagalba įdiegimo procese, mūsų MySQL pamoka turi visą būtiną informaciją.
Naudodami savo root paskyrą, galite sukurti papildomas vartotojų paskyras arba naujus MySQL vartotojus ir jiems priskirti leidimus. Ubuntu sistemose su MySQL 5.7 ar naujesnėmis versijomis MySQL root vartotojas pagal numatytuosius nustatymus yra konfigūruotas autentiškumui patvirtinti naudoti auth_socket įskiepį, o ne slaptažodį. Tai reiškia, kad jei sistemos vartotojo, kuris iššaukia MySQL klientą, vardas skiriasi nuo komandoje nurodyto MySQL vartotojo vardo, norėdami gauti prieigą prie savo root paskyros, komandą turėsite pradėti sudo:
$ sudo mysqlbashNorėdami sukurti naują vartotoją MySQL, naudokite komandą CREATE USER. Tai leidžia sukurti vartotoją su konkrečiu vartotojo vardu ir slaptažodžiu:
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';bashPakeiskite username savo pasirinktu vartotojo vardu. host įrašykite kompiuterio, iš kurio naujas vartotojas galės prisijungti, pavadinimą. Jei vartotojas turės prieigą prie duomenų bazės tik iš jūsų vietinio Ubuntu serverio, galite įrašyti localhost.
Renkantis autentiškumo patvirtinimo įskiepį, turite keletą galimybių. Įskiepis auth_socket užtikrina aukštą saugumą, reikalaujant iš vartotojų įvesti slaptažodį, kad galėtų prisijungti prie duomenų bazės. Tačiau jis riboja nuotolinius prisijungimus, todėl išorinėms programoms gali prireikti daugiau pastangų, kad galėtų sąveikauti su MySQL. Alternatyviai, galite praleisti komandos dalį WITH authentication_plugin, kad autentiškumą patvirtintumėte naudodami standartinį MySQL įskiepį caching_sha2_password. Komanda atrodytų taip:
mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';bashSukūrę naują vartotoją, turite jam priskirti leidimus.
Kaip priskirti teises vartotojams MySQL
Vartotojų teisių kūrimas ir valdymas yra būtinas duomenų saugumo MySQL palaikymui. Bendrasis komandos, skirtos vartotojų teisių priskyrimui, yra:
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';bashVertė PRIVILEGE nustato, kokius veiksmus vartotojas gali atlikti nurodytoje duomenų bazėje ir lentelėje. Šią vertę galite pakeisti, be kita ko, šiais komandomis:
CREATE: Leidžia vartotojams kurti duomenų bazę arba lentelęSELECT: Leidžia vartotojams gauti duomenisINSERT: Leidžia vartotojams pridėti naujus įrašus į lentelesUPDATE: Leidžia vartotojams keisti esamus įrašus lentelėseDELETE: Leidžia vartotojams ištrinti lentelių įrašusDROP: Leidžia vartotojams ištrinti visas duomenų bazės lenteles
Taip pat galite naujiems vartotojams suteikti keletą teisių iš karto. Tokiu atveju teises reikia atskirti kableliais:
mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';bashLeidimai naudotis visomis duomenų bazėmis ar lentelėmis taip pat gali būti suteikiami vienu komandomis, įvedant * vietoj atskirų duomenų bazių ir lentelių pavadinimų. Pavyzdžiui, šis komandos suteikia vartotojui leidimą ieškoti duomenų (SELECT), pridėti naujus įrašus (INSERT) ir keisti esamus įrašus (UPDATE) visose duomenų bazėse ir lentelėse.
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';bashKai MySQL vykdysite CREATE USER arba GRANT komandas, galėsite naudoti FLUSH PRIVILEGES komandą, kad atnaujintumėte duomenų bazę. Tai perkraus autorizacijos lenteles, užtikrinant, kad naujos autorizacijos bus įsigaliojusios:
mysql> FLUSH PRIVILEGES;bashTačiau svarbu suteikti vartotojams tik tuos įgaliojimus, kurių jiems reikia. Jei vartotojui suteikiate visišką kontrolę, tai gali kelti didelį saugumo pavojų.
Kaip atšaukti vartotojų teises MySQL
Komanda REVOKE naudojama vartotojo teisių pašalinimui MySQL. Sintaksė yra panaši į komandos GRANT sintaksę. Tačiau su šia komanda reikia naudoti FROM vietoj TO:
mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';bashNorėdami peržiūrėti dabartinius vartotojo leidimus, galite naudoti komandą SHOW GRANTS:
mysql> SHOW GRANTS FOR 'username'@'host';bashNaudodami komandą DROP galite ištrinti vartotoją:
mysql> DROP USER 'username'@'localhost';bashNaudotojus, ypač turinčius administratoriaus teises, trinti reikia labai atsargiai. Kad išvengtumėte netyčinio duomenų praradimo, įsitikinkite, kad trinate tik tuos naudotojus, kuriuos tikrai norite ištrinti.
Kai baigsite kurti naujus MySQL vartotojus ir suteikti jiems teises, galite uždaryti MySQL klientą:
mysql> exitbash45d969e266677cabb44ceaf95418e879
bf812055a1ab3935cb15b43974c56856
01524320532809020958f4b5d042b02d
1b67cfdd89611352c3472ca463d3de9f
26285f4721b20b07e60196b9449d21e7