Kako ustvariti uporabnike v MySQL
Za ustvarjanje novega uporabnika v MySQL potrebujete zadostne administratorske pravice ali privilegije superuporabnika, ki vam omogočajo ustvarjanje uporabniških računov in upravljanje pooblastil, poleg dostopa do zadevne zbirke podatkov. Prav tako morate vedeti, kakšen dostop potrebuje novi uporabnik, ali gre za pravice branja, pisanja ali celo administratorske pravice.
Kako uporabljati ukaz MySQL CREATE USER
Pri namestitvi sistema za upravljanje podatkovnih baz MySQL samodejno ustvari root račun. Ta račun vam omogoča popoln nadzor nad vašimi podatkovnimi bazami, tabelami in uporabniki, kar omogoča učinkovito upravljanje. Če potrebujete pomoč pri namestitvi, naš MySQL tutorial vsebuje vse potrebne informacije.
S svojim korenskim računom lahko ustvarite dodatne uporabniške račune ali nove uporabnike MySQL in jim dodelite pooblastila. Na sistemih Ubuntu z MySQL 5.7 ali novejšimi različicami je uporabnik root MySQL privzeto nastavljen tako, da se avtentificira s pluginom auth_socket namesto z geslom. To pomeni, da če se ime sistemskega uporabnika, ki kliče odjemalca MySQL, razlikuje od imena uporabnika MySQL, navedenega v ukazu, morate pred ukazom dodati sudo, da pridobite dostop do svojega root računa:
$ sudo mysqlbashZa ustvarjanje novega uporabnika v MySQL uporabite ukaz CREATE USER. To vam omogoča ustvarjanje uporabnika z določenim uporabniškim imenom in geslom:
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';bashZamenjajte username z imenom uporabnika po vaši izbiri. V polje host vnesite ime gostitelja, s katerega se lahko novi uporabnik poveže. Če naj bi imel uporabnik dostop do zbirke podatkov samo z vašega lokalnega strežnika Ubuntu, lahko vnesete localhost.
Pri izbiri vtičnika za avtentifikacijo imate na voljo več možnosti. Vtičnik auth_socket ponuja visoko varnost, saj od uporabnikov zahteva vnos gesla za dostop do baze podatkov. Vendar omejuje oddaljene povezave, kar lahko zahteva več truda za zunanje programe, ki komunicirajo z MySQL. Alternativno lahko izpustite del ukaza WITH authentication_plugin, da avtentificirate uporabnike z uporabo standardnega vtičnika MySQL caching_sha2_password. Tako bi izgledal ukaz:
mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';bashKo ustvarite novega uporabnika, mu morate dodeliti pooblastila.
Kako dodeliti pravice uporabnikom v MySQL
Ustvarjanje in upravljanje uporabniških pravic je bistveno za ohranjanje varnosti podatkov v MySQL. Splošni ukaz za dodeljevanje uporabniških pravic je:
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';bashVrednost PRIVILEGE določa, katere ukrepe lahko uporabnik izvede v določeni zbirki podatkov in tabeli. To vrednost lahko nadomestite med drugim z naslednjimi ukazi:
CREATE: Omogoča uporabnikom ustvarjanje baze podatkov ali tabeleSELECT: Omogoča uporabnikom, da pridobijo podatkeINSERT: Omogoča uporabnikom dodajanje novih vnosov v tabeleUPDATE: Omogoča uporabnikom spreminjanje obstoječih vnosov v tabelahDELETE: Omogoča uporabnikom, da izbrišejo vnose v tabelahDROP: Omogoča uporabnikom, da izbrišejo celotne tabele baze podatkov
Novim uporabnikom lahko dodelite tudi več privilegijev hkrati. Pri tem morate privilegije ločiti z vejico:
mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';bashPooblastila za vse baze podatkov ali tabele je mogoče dodeliti tudi z enim samim ukazom, tako da namesto posameznih imen baz podatkov in tabel vnesete *. Na primer, naslednji ukaz uporabniku dodeli pooblastilo za poizvedovanje podatkov (SELECT), dodajanje novih vnosov (INSERT) in spreminjanje obstoječih vnosov (UPDATE) v vseh bazah podatkov in tabelah.
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';bashKo izvedete CREATE USER ali GRANT ukazov v MySQL, lahko uporabite ukaz FLUSH PRIVILEGES za posodobitev zbirke podatkov. To ponovno naloži tabele pooblastil in zagotovi, da se nova pooblastila začnejo uporabljati:
mysql> FLUSH PRIVILEGES;bashVendar je pomembno, da uporabnikom dodelite samo pooblastila, ki jih potrebujejo. Če uporabniku dodelite popoln nadzor, lahko to predstavlja veliko varnostno tveganje.
Kako preklicati uporabniške pravice uporabnikom v MySQL
Ukaz REVOKE se uporablja za odstranjevanje uporabniških pravic v MySQL. Sintaksa je podobna sintaksi ukaza GRANT. Vendar pa morate pri tem ukazu namesto TO uporabiti FROM:
mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';bashZa prikaz trenutnih pooblastil, ki jih ima uporabnik, lahko uporabite ukaz SHOW GRANTS:
mysql> SHOW GRANTS FOR 'username'@'host';bashZa brisanje uporabnika lahko uporabite ukaz DROP:
mysql> DROP USER 'username'@'localhost';bashPri brisanju uporabnikov, zlasti tistih z administrativnimi pravicami, morate biti izredno previdni. Prepričajte se, da odstranite samo tiste uporabnike, ki jih resnično želite izbrisati, da ne pride do nenamerne izgube podatkov.
Ko končate z ustvarjanjem novih uporabnikov MySQL in dodeljevanjem pravic, lahko zaprete odjemalca MySQL:
mysql> exitbash45d969e266677cabb44ceaf95418e879
bf812055a1ab3935cb15b43974c56856
01524320532809020958f4b5d042b02d
1b67cfdd89611352c3472ca463d3de9f
26285f4721b20b07e60196b9449d21e7
b7f8469a4592c8d2235cdd9e51f76293
a688cb080be603b459387ced9a2a7ac9