Ihned po instalaci MySQL budete mít root
uživatel k dispozici.
Toto je uživatel, kterého můžete použít, abyste zjistili, zda MySQL funguje, ale neměl by to být uživatel pro jiné druhy použití.
Proč? Protože je příliš výkonný .
S velkou mocí přichází velká zodpovědnost (řekl Spider-Manův strýc). A zejména velké nebezpečí, pokud uděláte chyby.
Místo toho byste měli vytvářet ad-hoc uživatele, kteří mají pouze oprávnění k provádění své práce a nic víc. Totéž platí pro použití Linuxu nebo jakéhokoli unixového systému, například:nechcete používat root
uživatele, ale svůj vlastní uživatelský účet.
Chcete-li vytvořit nového uživatele, připojte se k MySQL pomocí root
uživatel:
mysql -u root -p
pak použijte příkaz
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Chcete-li například vytvořit uživatele s názvem test_user
s heslem test_password12A
spusťte příkaz:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
Příkaz by měl vrátit řádek s textem Query OK, 0 rows affected (X.XX sec)
:
Pokud jste použili neplatné heslo, systém by vám řekl něco jako ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. V tomto případě chyba říká, že heslo není dostatečně složité, protože když jsem instaloval MySQL, řekl jsem mu, aby použil určitou zásadu pro hesla.
To je skvělé! Nyní je uživatel vytvořen a můžeme se pomocí tohoto uživatele připojit k MySQL. Z příkazového řádku můžete ukončit zadáním QUIT
a zadáním:
mysql -u test_user -p
Nyní, když se pokusím vytvořit databázi, zobrazí se mi chyba ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
Proč? Protože uživatel nemá oprávnění k vytvoření nové databáze .
Jak pracovat s oprávněními, uvidíme v jiném tutoriálu.
Za zmínku stojí @'localhost'
řetězec, který jsme použili k vytvoření uživatele. To říká MySQL, že uživatel se může připojit pouze z localhost. Což je v pořádku, když věci testujete a když jakákoli aplikace, která se připojí k MySQL, běží na stejném počítači, na kterém běží DBMS.
Pokud to není pravda, musíte buď ručně zadat IP, ze které se bude uživatel připojovat, nebo použít %
zástupný znak:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Chci zavřít tento tutoriál ukázkou, jak odstranit uživatele, kterého jsme vytvořili:
DROP USER 'test_user'@'localhost';