Článek popisuje oprávnění databáze MySQL®. Také popisuje, jak vytvořit nového uživatele a udělit nebo zrušit oprávnění.
Použití příkazů MySQL
Následují užitečné návrhy pro příkazy MySQL.
Velká písmena
Příkazy MySQL nemusíte psát velkými písmeny. Oba následující příkazy fungují stejně dobře:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;
create user ‘username’@’localhost’ identified by ‘password’;
Použití velkých písmen vám však pomůže udržet syntaxi příkazu oddělenou od dat nebo proměnných prvků příkazu.
parametr localhost
Můžete také změnit localhost
prvek, který uživateli umožňuje přístup k databázi z počítače, na kterém se právě nacházíte. Pokud chcete uživateli umožnit přístup k databázi odkudkoli, použijte %
symbol místo localhost
. Pokud chcete, aby se uživatel přihlásil do databáze z konkrétní IP adresy, vložte místo ní tuto IP adresu. Například username’@’22.111.000.34
.
Proto můžete vytvořit uživatele pomocí libovolného z následujících příkazů:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';CREATE USER 'username'@'%' IDENTIFIED BY 'password';CREATE USER 'username'@'22.111.000.34' IDENTIFIED BY 'password';
Poznámka: Pokud chcete, aby uživatel mohl přistupovat k databázi ze dvou konkrétních umístění a pouze z těchto umístění, měli byste uživatele vytvořit dvakrát. Předpokládejme například, že chcete, aby se váš uživatel mohl přihlásit do databáze z počítače, na kterém se právě nacházíte, a také pomocí konkrétní IP adresy. Nejprve vytvořte uživatele pomocí localhost
umístění v příkazu. Poté znovu vytvořte uživatele pomocí konkrétní IP adresy.
Oprávnění
Mezi běžná oprávnění patří následující:
-
VŠECHNA PRIVILEGIA :Umožňuje uživateli úplný přístup k určené databázi nebo umožňuje globální přístup napříč systémem, pokud databázi neurčíte. Toto oprávnění zahrnuje všechna následující oprávnění kromě GRANT .
-
VYTVOŘIT :Umožňuje uživateli vytvářet nové tabulky nebo databáze.
-
DROP :Umožňuje uživateli odstraňovat tabulky nebo databáze.
-
SMAZAT :Umožňuje uživateli odstraňovat řádky z tabulek.
-
INSERT :Umožňuje uživateli vkládat řádky do tabulek.
-
VYBRAT :Uděluje uživateli oprávnění pouze pro čtení k určeným databázím.
-
AKTUALIZACE :Umožňuje uživateli aktualizovat řádky tabulky.
-
ZAMKNOUT TABULKY :Umožňuje uživateli uzamknout tabulky.
-
ZOBRAZIT DATABÁZE :Umožňuje uživateli vypsat seznam všech databází.
-
MOŽNOST UDĚLENÍ :Umožňuje uživateli udělit nebo odebrat oprávnění jiných uživatelů. Toto oprávnění musíte výslovně udělit.
Přihlaste se
Přihlaste se do MySQL jako uživatel root pomocí následujícího příkazu:
mysql -u root -p
Systém vás vyzve k zadání hesla uživatele root pro MySQL, které se liší od hesla uživatele root pro samotný server.
Poznámka: Pokud máte na serveru oprávnění sudo, můžete pravděpodobně najít kořenové heslo MySQL v ~/.my.cnf soubor jako uživatel root.
Vytvořte nového uživatele
Nyní, když jste přihlášeni do MySQL jako root, můžete vytvořit svého uživatele. Vyberte uživatelské jméno, které se vám líbí. Zadejte následující příkaz a nahraďte username
a password
s vámi zvoleným uživatelským jménem a heslem:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;
Pokud bude úspěšný, systém zobrazí Dotaz OK .
Udělit oprávnění
Pro udělení uživatelských oprávnění v MySQL použijte následující formát:
GRANT permission1, permission2, permission3 ON databasename.tablename TO ‘newuser’@’localhost’;
Pokud chcete uživateli pouze poskytnout přístup ke všem tabulkám v databázi, použijte databasename.*
místo databasename.tablename
. Podobně, pokud chcete, aby měl uživatel konkrétní sadu oprávnění pro všechny tabulky všech databází, použijte *.*
.
Příklady udělení oprávnění:
GRANT ALL PRIVILEGES ON databasename.* TO ‘newuser’@’%’;
GRANT ALL PRIVILEGES, GRANT OPTION ON *.* TO ‘newuser’@’22.111.000.34’;
GRANT SELECT, SHOW DATABASES, LOCK TABLES ON databasename.* TO ‘newuser’@’localhost’;
Zrušit oprávnění
Pokud potřebujete zrušit oprávnění uživatele, použijte následující formát:
REMOVE permission1, permission2, permission3 ON databasename.* FROM ‘newuser’@’localhost’;
Kontrola oprávnění
Chcete-li zkontrolovat, jaká oprávnění má uživatel, použijte následující příkaz:
SHOW GRANTS newuser;
Použít oprávnění
Po vytvoření uživatele, udělení oprávnění nebo odebrání oprávnění spusťte následující příkaz:
FLUSH PRIVILEGES;
Tento příkaz znovu načte tabulky se zahrnutými novými uživateli a oprávněními. Berte to jako uložení změn.
Odhlásit se
Po dokončení změn použijte k bezpečnému ukončení MySQL následující příkaz:
EXIT;