sql >> Databáze >  >> RDS >> Mysql

Uživatelská oprávnění MySQL

Podívejme se, jak udělit oprávnění (tzv. privilegia) uživateli databáze MySQL

Ve výchozím nastavení, když vytvoříte nového uživatele MySQL pomocí syntaxe

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

uživatel toho moc nezmůže. Můžeme říci, že to vlastně nemůže nic.

Nemůže číst data z žádné existující databáze, natož data upravovat. A nemůže ani vytvořit novou databázi.

Chcete-li uživatele přimět k jakékoli činnosti, musíte mu udělit oprávnění k tomu.

Můžete tak učinit pomocí GRANT příkaz.

Můžeme použít GRANT <permission> pomocí následujících klíčových slov pro oprávnění:

  • CREATE
  • DROP
  • DELETE
  • INSERT
  • SELECT
  • UPDATE
  • ALL PRIVILEGES

Udělte uživateli oprávnění k vytváření nových databází

GRANT CREATE ON *.* TO '<username>'@'localhost';

Udělte uživateli oprávnění vytvářet nové tabulky v konkrétní databázi

GRANT CREATE ON <database>.* TO '<username>'@'localhost';

Udělte uživateli oprávnění ke čtení (dotazování) konkrétní databáze

GRANT SELECT ON <database>.* TO '<username>'@'localhost';

Udělte oprávnění ke čtení konkrétní tabulky databáze uživateli

GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';

Udělte oprávnění vkládat, aktualizovat a mazat řádky v konkrétní databázi uživatel

GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';

Udělte uživateli oprávnění k mazání tabulek v konkrétní databázi

GRANT DROP ON <database>.* TO '<username>'@'localhost';

Udělte uživateli oprávnění k mazání databází

GRANT DROP ON *.* TO '<username>'@'localhost';

Udělte uživateli všechna oprávnění ke konkrétní databázi

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';

Udělte všechna oprávnění uživateli

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Odebrat oprávnění

Příklad pro zrušení DROP oprávnění na <database> :

REVOKE DROP ON <database>.* TO '<username>'@'localhost';

Chcete-li zrušit všechna oprávnění, spusťte:

REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Oprávnění jednoho uživatele můžete zobrazit spuštěním:

SHOW GRANTS FOR '<username>'@'localhost';

  1. Jak importuji moduly nebo instaluji rozšíření v Postgres?

  2. Offset řádků v SQL Server

  3. PHP MySQLI Zabránit SQL Injection

  4. Je primární klíč automaticky indexován v MySQL?