GNU/Linux >> Znalost Linux >  >> Linux

Jak přidat nového uživatele MySQL a udělit přístupová oprávnění

V tomto tutoriálu přidáme nového uživatele do MySQL a udělíme různé typy oprávnění pro databázi MySQL.

Server MySQL nám umožňuje vytvářet četné uživatelské účty a udělovat příslušná oprávnění, aby uživatelé mohli přistupovat k databázím a spravovat je. Jakmile máte na serveru nainstalovanou MySQL, musíte vytvořit databázi a další uživatelské účty.

Chcete-li spustit následující příkazy, musíte se nejprve přihlásit k serveru MySQL pomocí kořenového účtu MySQL.

mysql -u root -p

Jak vytvořit nového uživatele MySQL

Položka CREATE USER vytvoří nového uživatele na databázovém serveru MySQL. Zde je základní syntaxe příkazu:

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

Ve výše uvedené syntaxi nezapomeňte nahradit uživatelské jméno a heslo s požadovaným uživatelským jménem a heslem.

Nastavte hostname na localhost pokud chcete, aby se uživatel mohl připojit k serveru MySQL pouze z localhost, což znamená „tento počítač“. Pokud chcete, aby se uživatel mohl připojit z libovolného hostitele, použijte % zástupný znak jako název hostitele.

Vytvoříme například uživatele s názvem james a heslo MyStrongPass123 pomocí následujícího příkazu:

CREATE USER 'james'@'localhost' IDENTIFIED BY 'MyStrongPass123';

Tento uživatel však nebude moci pracovat s žádnou z databází MySQL, dokud mu nebudou udělena další oprávnění.

Jak udělit oprávnění uživateli MySQL

Ihned po úspěšném vytvoření nového uživatele můžeme tomuto novému uživateli udělit oprávnění. Ve většině případů budete uživatelům MySQL udělovat oprávnění na základě konkrétní databáze, ke které by měl mít účet přístup.

Existuje několik typů oprávnění, která lze udělit uživatelskému účtu. Úplný seznam oprávnění podporovaných MySQL naleznete zde.

  • ALL PRIVILEGES – Uděluje veškerá oprávnění uživatelskému účtu.
  • ALTER – Uživatel může změnit strukturu tabulky nebo databáze.
  • CREATE – Uživatelský účet může vytvářet databáze a tabulky.
  • DROP – Uživatelský účet může rušit databáze a tabulky.
  • DELETE – Uživatelský účet může mazat řádky z konkrétní tabulky.
  • INSERT – Uživatelský účet může vkládat řádky do konkrétní tabulky.
  • SELECT – Uživatelský účet má povoleno číst databázi.
  • UPDATE – Uživatelský účet může aktualizovat řádky tabulky.

Chcete-li uživateli poskytnout přístup k databázi MySQL a udělit oprávnění, obecně musíte použít následující GRANT prohlášení:

GRANT permission_type ON privilege_level TO 'username'@'hostname'; 

Pro udělení všech oprávnění uživateli james na jamesdb databáze, použijte následující příkaz:

GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';

Zadejte následující, chcete-li udělit pouze SELECT a INSERT oprávnění pro uživatele james na jamesdb databáze:

GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';

Velký SELECT oprávnění pro uživatele james pouze na salaries tabulky na employees databáze:

GRANT SELECT ON employees.salaries TO 'james'@'localhost';

V některých případech můžete chtít vytvořit dalšího „super uživatele“. Udělit uživateli stejná oprávnění jako root uživatel MySQL , použijte následující příkaz, který uděluje globální oprávnění uživateli james připojení přes localhost :

GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION;

Změna hesla uživatelského účtu MySQL

Předpokládejme, že chcete změnit heslo pro james   uživatel, který se připojuje z localhost na NewStrongPass123 , musíte provést následující příkaz SQL:

ALTER USER 'james'@'localhost' IDENTIFIED BY 'NewStrongPass123';

Ve výše uvedeném příkazu SQL nezapomeňte změnit james s uživatelem vaší databáze a localhost s hostitelem uživatele.

Zobrazit práva pro uživatele v MySQL

V MySQL můžete použít SHOW GRANTS příkaz k zobrazení všech informací o udělení pro uživatele. Vezměme si několik příkladů.

Následující prohlášení používá SHOW GRANTS příkaz k zobrazení oprávnění udělených aktuálnímu uživateli:

SHOW GRANTS;

Chcete-li zobrazit granty pro uživatele MySQL, můžete použít SHOW GRANTS při zadávání uživatelského jména:

SHOW GRANTS FOR 'james'@'localhost';

Odebrat oprávnění z uživatelského účtu MySQL

Syntaxe pro odebrání jednoho nebo více oprávnění z uživatelského účtu je téměř stejná jako při udělování oprávnění.

Pokud potřebujete odebrat oprávnění uživateli james na jamesdb databáze, použijte syntaxi podobnou té, kterou jste použili při udělování oprávnění:

REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost';

Odebrat uživatele z MySQL

Namísto odebrání oprávnění můžete chtít odebrat také daného uživatele. Uživatele databáze tedy můžete odebrat pomocí následujícího příkazu:

DROP USER 'james'@'localhost';

Výše uvedený příkaz odstraní uživatele james spolu se všemi jeho výsadami.

Uložení změn

Jako poslední krok se při každé aktualizaci nebo změně oprávnění ujistěte, že používáte FLUSH PRIVILEGES příkaz.

FLUSH PRIVILEGES;

Závěr

Po dokončení tohoto tutoriálu byste měli mít přehled o tom, jak přidávat nové uživatele a udělovat jim různá oprávnění v databázi MySQL.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Jak udělit a odebrat oprávnění Sudo uživatelům na Ubuntu

  2. Jak vytvořit nového uživatele s přístupem Ssh?

  3. Vytvořte nového uživatele a udělte oprávnění v MySQL

  1. Jak vytvořit nového uživatele MySQL a udělit oprávnění

  2. Jak vytvořit uživatele MariaDB a udělit oprávnění

  3. Jak přidám X dní k datu a získám nové datum?

  1. Přidejte, odstraňte a udělte oprávnění Sudo uživatelům ve Fedoře

  2. Jak přidat, odstranit a udělit oprávnění Sudo uživatelům v Ubuntu

  3. Přidejte, odstraňte a udělte oprávnění Sudo uživatelům v CentOS