mysql create user how create new user mysql
Ta vadnica razlaga ukaz MySQL Create User z različnimi mehanizmi avtorizacije, upravljanjem gesel, možnostmi omejitve virov itd.:
Ukaz MySQL CREATE USER se uporablja za ustvarjanje novih uporabnikov in odobritev podrobnega dostopa do baz podatkov / tabel itd.
Več ljudi uporablja primer strežnika MySQL z različnimi stopnjami dostopa. Na primer, nekateri uporabniki imajo dostop do branja do določene baze podatkov, podobno imajo nekateri dostop do branja in pisanja do določene baze podatkov itd.
Ukaz CREATE USER skrbniki MySQL pogosteje uporabljajo za ustvarjanje uporabnikov za primerke strežnika MySQL in dodelitev različnih dovoljenj z uporabo poizvedbe GRANT.
Kaj se boste naučili:
- Moj SQL CREATE USER ukaz
- Zaključek
Moj SQL CREATE USER ukaz
Ukaz CREATE USER se uporablja za ustvarjanje ali dodajanje novih računov v primerke strežnika MySQL.
Ta ukaz je na splošno dostopen / ga uporabljajo skrbniki MySQL za upravljanje dostopa do različnih uporabnikov primerka strežnika MySQL.
Med ustvarjanjem uporabnika z ukazom USTVARI UPORABNIKA lahko določite
- Preverjanje pristnosti, ki ga je treba uporabiti med povezovanjem z MySQL.
- Omejitev virov
- Lastnosti upravljanja gesel: Potek gesla, nastavitve ponovne uporabe gesla.
- Zaklepanje računa: Novo ustvarjeni računi bi bili zaklenjeni ali odklenjeni.
Računi so ustvarjeni v sistemski tabeli MySQL z imenom ‘Mysql.user’
Opomba: Če želite uporabiti ukaz CREATE USER, mora imeti uporabnik privilegij CREATE_USER ali dovoljenje za vstavljanje MySQL sistemska shema.
V najpreprostejši obliki je sintaksa za ukaz CREATE USER naslednja:
CREATE USER (IF NOT EXISTS) '{username}'@'{hostname}' IDENTIFIED BY '{passwordString}';
Upoštevajte neobvezno ČE NE OBSTAJA . To zagotavlja, da bo, če uporabnik že obstaja, rezultat poizvedbe SQL samo sprožil opozorilo in brez napake. Tukaj, 'Uporabniško ime' se nanaša na dejansko uporabniško ime, s katerim bi se uporabnik povezal in 'Ime gostitelja' se nanaša na gostitelja, s katerega bi se uporabnik povezal.
Prosimo, upoštevajte, če polje „ime gostitelja“ ostane prazno, se predpostavlja, da je vrednost gostitelja „%“, kar bi vsakemu gostitelju omogočilo povezavo z določenim uporabniškim imenom.
Ustvari uporabnika s to sintakso:
CREATE USER 'userx'@'localhost' IDENTIFIED BY 'password';
Z zgornjo izjavo smo ustvarili uporabnika z uporabniškim imenom 'userx' in geslom kot 'geslo'. Ime gostitelja je localhost, saj ustvarjamo uporabnike na našem lokalnem primerku MySQL.
Poskusimo poizvedovati po tabeli mysql.users, da si ogledamo vnos za uporabnika, ki smo ga ustvarili.
SELECT * from mysql.user
Rezultat bo prikazan spodaj:
Prvi štirje uporabniki so vnaprej ustvarjeni med samo namestitvijo MySQL, zadnji vnos pa je uporabnik, ki smo ga ustvarili, tj.
Pomembno je omeniti, da smo na tem mestu pravkar ustvarili uporabnika, ne da bi mu dali pravice v zvezi z ustvarjanjem / posodabljanjem / poizvedovanjem po zbirki podatkov itd.
kako predstaviti graf v javi
Poskusimo se prijaviti s tem uporabnikom z odjemalcem MySQL.
S terminalom se lahko povežete s spodnjim ukazom:
$ /usr/local/mysql/bin/mysql -u userx -p
Ob pozivu za geslo vnesite geslo kot »geslo«.
Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 33 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
Zdaj bomo z uporabo ključne besede CREATE DATABASE ustvarili novo bazo podatkov.
mysql> create database student; ERROR 1044 (42000): Access denied for user 'userx'@'localhost' to database 'student'
Kot lahko vidite zgoraj, je ustvarjeno sporočilo o napaki, ki sporoča, da uporabnik 'userx' nima dostopa za ustvarjanje DATABASE. Poglejmo še druge možnosti, ki bi jih lahko uporabili z ukazom USTVARI UPORABNIKA.
USTVARITE UPORABNIKA z vtičnikom Auth
‘Auth plugin’ določa možnost preverjanja pristnosti in se shrani v stolpec vtičnika tabele mysql.user. MySQL podpira peščico vtičnikov za preverjanje pristnosti.
Podprti so nekateri vtičniki:
- Razprševanje domačega gesla MySQL: Domače zgoščevanje gesel ni nič drugega kot uporaba SHA1 za shranjevanje vrednosti gesel v tabeli mysql.users. Šteje se, da je ta mehanizem manj varen kot zgoščevanje gesel SHA1.
- Razprševanje gesel SHA2 256: To je privzeti vtičnik za preverjanje pristnosti, ki ga uporablja MySQL. torej tudi če z ukazom CREATE_USER ni določen noben vtičnik za overjanje, bi bil ta vtičnik privzeto uporabljen.
- Zunanja overitev z uporabo LDAP: LDAP se običajno uporablja za povezovanje overjanja MySQL z aktivnim imenikom organizacije. Na primer, preverjanje pristnosti z uporabo Google SSO, OAuth ali Microsoft Outlook LDAP. To zahteva namestitev vtičnika LDAP tudi na strani MySQL. Za več podrobnosti se lahko obrnete tukaj.
>> Glej tukaj za celoten seznam podprtih vtičnikov.
Poskusimo ustvariti uporabnika s privzetim vtičnikom auth in vtičnikom SHA2 auth ter ustreznimi zgoščenimi vrednostmi v tabeli mysql.users. Najprej bomo ustvarili uporabnika s privzeto overitvijo, ki je (SHA2), in poglejmo, kaj je shranjeno v mysql.user tabela.
CREATE USER IF NOT EXISTS 'user-default'@'localhost' IDENTIFIED BY 'P@ssw0rd'
Oglejmo si vtičnik za preverjanje pristnosti tega uporabnika 'user-default' v tabeli mysql.users:
SELECT host,user,plugin,authentication_string from mysql.user where user='user-default'
Tukaj v authentication_string lahko vidite njegovo vrednost SHA-256 za niz gesla - ‘P @ ssw0rd’.
Ustvarimo zdaj uporabnika z vtičnikom za preverjanje pristnosti. ‘MySQL native password’ in si oglejte, kakšna je vrednost vtičnika, ki se shrani.
CREATE USER IF NOT EXISTS 'user-sha1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P@ssw0rd'
SELECT host,user,plugin,authentication_string from mysql.user where user='user-sha1'
USTVARI UPORABNIKA Z vlogo
MySQL omogoča tudi dodeljevanje vnaprej določenih vlog novim uporabnikom. Te vloge že imajo konfiguriran dostop do nekaterih ali vseh baz podatkov (ki jih je mogoče tudi prilagoditi), na primer, lahko bi ustvarili vlogo z imenom „razvijalec“, ki bi ji lahko dodelili vse privilegije zbirki podatkov, kasneje pa lahko isto vlogo uporabimo za nove uporabnike.
Poglejmo to na primeru:
- Ustvarite vlogo z imenom razvijalec
CREATE ROLE 'developer'
- Ustvarite bazo podatkov z imenom 'test'
CREATE DATABASE test
- Dodelite privilegije preskusni zbirki podatkov za vlogo razvijalca
GRANT ALL ON test.* TO 'developer'
- Ustvarite uporabnika in dodelite vlogo razvijalca
CREATE USER IF NOT EXISTS 'user-with-role'@'localhost' DEFAULT ROLE developer;
- Preverite, ali lahko uporabnik ustvari tabelo v testni bazi podatkov
Poskusimo se prijaviti z uporabnikom z imenom 'user-with-role' in poskusili bomo ustvariti novo tabelo v testni bazi podatkov.
$ /usr/local/mysql/bin/mysql -u user-with-role Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 44 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> use test; Database changed mysql> create table test_table(name varchar(20)); Query OK, 0 rows affected (0.07 sec)
USTVARITE UPORABNIKA S SSL / TLS
Če želite ustvariti uporabnika z možnostmi SSL / TLS, bi morali imeti odjemalec in strežnik nameščena potrdila SSL. Privzeto SSL ni konfiguriran za MySQL.
Sledite tem koraki za konfiguriranje SSL za primerek strežnika MySQL.
Če želite ustvariti uporabnika z omogočenim SSL, lahko med ustvarjanjem uporabnika uporabite možnost ZAHTEVAJ SSL.
eclipse ide za c / c ++
CREATE USER 'user-with-ssl'@'localhost' REQUIRE SSL;
Podobno bi pri ustvarjanju z uporabo X509 pričakovali, da bo odjemalec / uporabnik vzpostavil veljavno potrdilo X509.
>> Glej tukaj za boljše razumevanje X509.
Če želite ustvariti uporabnika s potrdilom X509, uporabite spodnjo poizvedbo:
CREATE USER 'user-with-x509'@'localhost' REQUIRE X509;
USTVARITE UPORABNIKA z možnostmi upravljanja z geslom
Možnosti gesla se uporabljajo za nastavitev pravilnika za geslo med ustvarjanjem uporabnika z ukazom USTVARI UPORABNIKA.
# 1) Izgubite geslo ob prijavi. Geslo poteče po prvi uporabi in uporabnike pozove k spremembi gesla.
CREATE USER IF NOT EXISTS 'test'@'localhost' IDENTIFIED BY 'Password' PASSWORD EXPIRE;
#two) Po določenem intervalu poteče geslo. Potek gesla lahko nastavite s konfiguriranim intervalom, na primer, 90 dni.
CREATE USER IF NOT EXISTS 'test'@'localhost' IDENTIFIED BY 'Password' PASSWORD EXPIRE INTERVAL 90 DAY;
# 3) Geslo se zaklene po konfiguriranih poskusih ponovnega poskusa. Velikokrat je zaželeno, da se uporabniški račun zaklene (za konfigurirano obdobje) po 'n' napačnih poskusih ponovnega poskusa. V spodnji poizvedbi se bo uporabniški račun po 5 napačnih poskusih zaklenil za 2 dni.
CREATE USER 'test'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password' FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 2;
# 4) Novo geslo ne sme biti enako kot konfigurirana prejšnja gesla.
V spodnji poizvedbi novo geslo, ki so ga nastavili uporabniki, ne sme biti enako kot prejšnja 2 gesla.
CREATE USER IF NOT EXISTS 'test'@'localhost' IDENTIFIED BY 'Password' PASSWORD EXPIRE PASSWORD HISTORY 2;
USTVARITE UPORABNIKA z možnostmi omejitve virov
Omejitve virov so potrebne zlasti za proizvodne primerke MySQL, da ne bi prišlo do preobremenitve baze podatkov s poizvedbami / zahtevami enega uporabnika in bi to lahko vplivalo na delovanje strežnika MySQL.
Omejitve virov lahko nastavimo s katero koli od spodnjih možnosti:
# 1) MAX_QUERIES_PER_HOUR - Število dovoljenih poizvedb za določenega uporabnika na uro.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_QUERIES_PER_HOUR 5
Recimo, če uporabnik poskuša preseči več kot 5 poizvedb na uro, strežnik MySQL prikaže napako, kot je spodaj:
ERROR 1226 (42000): User 'user-with-resource-limits' has exceeded the 'max_questions' resource (current value: 5)
# 2) MAX_UPDATES_PER_HOUR - Število dovoljenih poizvedb za posodobitev za določenega uporabnika na uro.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_UPDATES_PER_HOUR 50
# 3) MAX_CONNECTIONS_PER_HOUR - Število povezav računa s strežnikom na uro.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 50
# 4) MAX_USER_CONNECTIONS - Število hkratnih povezav danega uporabnika s primerkom strežnika MySQL.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_USER_CONNECTIONS 50
Upoštevajte, da bi lahko med ustvarjanjem uporabnika združili tudi vse zgornje možnosti. Recimo, da če želimo MAX_QUERIES določiti kot 10 in MAX_UPDATES kot 100, potem imamo lahko eno poizvedbo CREATE_USER kot:
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_UPDATES_PER_HOUR 100 MAX_QUERIES_PER_HOUR 10
MySQL posodabljanje in brisanje uporabnikov
MySQL ponuja 2 pomembna ukaza - ALTER USER in DROP USER za spreminjanje in brisanje obstoječih uporabnikov. Razumimo oba na zgledih.
ALTER UPORABNIK
MySQL ALTER USER se uporablja za posodabljanje / spreminjanje obstoječih uporabniških računov MySQL. Lahko se uporablja za,
- Posodobite omejitve virov
- Nastavite možnosti gesla
- Zaklepanje in odklepanje računov itd.
Oglejmo si primer uporabe ALTER USER za odklepanje zaklenjenega računa.
Ustvarite uporabnika v zaklenjenem stanju in ga nato odklenite z ukazom ALTER USER.
CREATE USER 'test'@'localhost'I DENTIFIED BY 'Password' ACCOUNT LOCK;
Zdaj, ko se prijavimo s tem uporabnikom, bomo dobili sporočilo o zaklenjenem računu (saj je bil uporabnik ustvarjen v stanju zaklenjenega računa).
$ /usr/local/mysql/bin/mysql -u test -p Enter password: ERROR 3118 (HY000): Access denied for user 'test'@'localhost'. Account is locked.
Za odklepanje uporabnika z ukazom ALTER uporabite spodnjo poizvedbo.
ALTER USER 'test'@'localhost' ACCOUNT UNLOCK
Prijavite se z uporabnikom z odjemalcem MySQL:
$ /usr/local/mysql/bin/mysql -u test -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 50 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
POPUSTI UPORABNIKA
Ukaz MySQL DROP USER odstrani enega ali več obstoječih uporabnikov ter vse z njimi povezane privilegije in podpore.
Upoštevajte, da ne bo odstranil / izbrisal nobenih vstavljenih podatkov / tabel, ki jih je ustvaril ali posodobil uporabnik in ki se briše.
Če nekdo poskuša izbrisati neobstoječega uporabnika, bo ukaz DROP USER vrnil napako.
Ustvarimo uporabnika in ga izbrišemo z ukazom DROP:
CREATE USER 'test'@'localhost'; DROP USER 'test'@'localhost';
Pogosto zastavljena vprašanja
V # 1) Kaj je uporabnik v MySQL?
Odgovor: Uporabnik v MySQL je račun / entiteta, ki se lahko prijavi v primerek strežnika MySQL in izvaja različne operacije. Uporabniku se lahko dodeli dostop na podlagi vlog ali podroben dostop do ene ali več baz podatkov in / ali tabel.
V # 2) Kako preveriti različne uporabnike, povezane z MySQL?
Odgovor: Če si želite ogledati aktivne uporabniške seje na primerku strežnika MySQL, lahko zaženete ukaz processlist, kot je prikazano spodaj.
SHOW processlist;
Izhod tega ukaza bi prikazal različne atribute sej aktivnega uporabnika, povezanih med izvajanjem ukaza.
Spodnji vzorec:
V # 3) Kako zamenjam uporabnika v MySQL?
Odgovor: MySQL deluje na konceptu uporabniških sej. Ko ste prijavljeni z določenim uporabnikom, lahko načrtujete prekinitev seje ali odpiranje seje za novega uporabnika v novem oknu ali kot novo povezavo v odjemalcih GUI MySQL, kot je delovna miza.
Za prijavo z določenim uporabnikom iz odjemalca mysql lahko uporabite spodnjo sintakso:
mysql -u {userName} -p
Ko boste napisali zgornji ukaz, boste po pritisku na Enter pozvani k vnosu gesla za uporabnika, navedenega v polju {userName}. Ko je geslo potrjeno, boste preusmerjeni v lupino / ukazni poziv MySQL.
Če se želite prijaviti z ločenim uporabnikom, trenutno sejo lahko zaključite tako, da vnesete izhodni ukaz in se znova prijavite z drugim uporabnikom.
mysql> exit
Možno je tudi več povezav s primerki strežnika MySQL za različne uporabnike. Preprosto lahko odprete nov zavihek / okno za ukazni poziv in z istim ukazom prijavite z drugim uporabnikom.
mysql -u {userName2} -p
V # 4) Kako narediti uporabnika MySQL samo za branje?
Odgovor: MySQL ponuja izčrpen mehanizem za dodeljevanje podrobnega dostopa do baz podatkov ali tabel. Do ene ali več baz podatkov ali tabel lahko zagotovite različne vrste dostopa, kot so SELECT, UPDATE, INSERT itd.
kako nastaviti maven v mrk
Če želite uporabniku odobriti dostop samo za branje, lahko odobrite dostop SELECT do zbirke podatkov (z uporabo * za vse tabele ali izrecno navedbo imena tabele glede na zahtevo)
Razumimo to s pomočjo spodnjega primera:
Ustvarjamo uporabnika z imenom 'ponovni dostop' z geslom kot 'Geslo'
create user 'readaccess'@'localhost' IDENTIFIED BY 'Password'
Zdaj odobrite dostop za branje do vseh tabel zbirke podatkov z imenom 'test' z uporabo ključne besede GRANT v MySQL
grant select on test.* to 'readaccess'@'localhost'
Zdaj se za potrditev dostopa lahko prijavite s tem uporabnikom z imenom 'ponovni dostop' in poskusite poizvedovati po tabelah znotraj baze 'test'.
Če pa poskusite vstaviti podatke v katero koli tabelo v testni bazi podatkov, boste dobili napako v zavrnitvi dostopa, saj smo temu uporabniku izrecno pravkar odobrili dostop za branje.
V # 5) Kako vidim uporabnike v MySQL?
Odgovor: MySQL ima sistemsko tabelo z imenom „mysql.user“, ki vsebuje seznam vseh uporabnikov, ustvarjenih za primerek strežnika MySQL. Privilegiji te tabele so na splošno omejeni na skrbniške ali skrbniške uporabnike ali osebe, ki upravljajo overjanje in avtorizacijo primerka strežnika MySQL.
V # 6) Kako najti uporabniško ime in geslo MySQL?
Odgovor: Preslikava uporabnikov in gesel MySQL je shranjena v sistemski tabeli ‘mysql.user’, ki je tabela z omejenim dostopom. Geslo se shrani v šifrirani obliki, odvisno od načina šifriranja, ki je bil izbran med ustvarjanjem uporabnika.
Če pa je nekdo račun zaklenjen, MySQL ponuja še en ukaz ALTER USER, s katerim lahko odklenete določen uporabniški račun.
Zaključek
V tej vadnici smo spoznali ukaz MySQL CREATE USER, ki ga skrbniki zbirke podatkov običajno uporabljajo za preverjanje pristnosti in upravljanje dostopa.
MySQL ponuja veliko zmogljivih avtentikacijskih mehanizmov in dodeljenih vlog, ki omogočajo ustvarjanje novih uporabnikov z vnaprej določenimi odobritvami dostopa. Videli smo tudi primere za ustvarjanje uporabnikov z različnimi mehanizmi avtorizacije, različnimi nastavitvami gesla, možnostmi poteka itd.
Priporočeno branje
- Kako prenesti MySQL za Windows in Mac
- Vadnica za ustvarjanje pogleda MySQL s primeri kode
- MySQL Vodič za ustvarjanje tabel s primeri
- 31 Najpomembnejših vprašanj in odgovorov za preskušanje zbirk podatkov
- Vadnica za normalizacijo zbirke podatkov: Primeri 1NF 2NF 3NF BCNF
- Popoln vodnik za testiranje zbirke podatkov (Zakaj, kaj in kako testirati podatke)
- MongoDB Ustvari varnostno kopijo baze podatkov
- MongoDB Ustvari uporabnika in dodeli vloge s primeri