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> exitbash