Vytváření uživatelů ve službě Azure Database for MySQL
Tento článek popisuje vytváření nových uživatelských účtů pro interakci se serverem Azure Database for MySQL.
Poznámka:
Tento článek odkazuje na termín slave, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.
Při vytváření serveru Azure Database for MySQL jste zadali uživatelské jméno a heslo správce serveru. Další informace najdete v tomto rychlém startu. Uživatelské jméno správce serveru můžete určit na webu Azure Portal.
Uživatel správce serveru má tato oprávnění:
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER
Po vytvoření serveru Azure Database for MySQL můžete pomocí prvního účtu správce serveru vytvořit další uživatele a udělit jim přístup správce. Účet správce serveru můžete také použít k vytvoření méně privilegovaných uživatelů s přístupem k jednotlivým schématům databáze.
Poznámka:
Oprávnění SUPER a role DBA se nepodporují. Projděte si oprávnění v článku o omezeních a zjistěte, co služba nepodporuje.
Moduly plug-in hesel jako validate_password
služba caching_sha2_password
nepodporují.
Vytvořit databázi
Získejte informace o připojení a uživatelské jméno správce.
Pokud se chcete připojit ke svému databázovému serveru, potřebujete úplný název serveru a přihlašovací údaje správce. Název serveru a přihlašovací údaje můžete snadno najít na stránce Přehled serveru nebo Vlastnosti na webu Azure Portal.
Pro připojení k databázovému serveru použijte účet správce a heslo. Použijte preferovaný klientský nástroj, MySQL Workbench, mysql.exe nebo HeidiSQL.
Upravte a spusťte následující kód SQL. Nahraďte zástupnou hodnotu
db_user
zamýšleným novým uživatelským jménem. Nahraďte zástupnou hodnotutestdb
názvem databáze.
Tento kód SQL vytvoří novou databázi s názvem testdb. Potom vytvoří nového uživatele ve službě MySQL a udělí uživateli všechna oprávnění pro nové schéma databáze (testdb.*).
CREATE DATABASE testdb;
Vytvoření uživatele bez oprávnění správce
Teď, když jste vytvořili databázi, můžete vytvořit uživatele bez oprávnění správce pomocí CREATE USER
příkazu MySQL.
CREATE USER 'db_user'@'%' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON testdb . * TO 'db_user'@'%';
FLUSH PRIVILEGES;
Ověření uživatelských oprávnění
Pokud chcete zobrazit oprávnění povolená pro uživatele db_user v databázi testdb , spusťte SHOW GRANTS
příkaz MySQL.
USE testdb;
SHOW GRANTS FOR 'db_user'@'%';
Připojení k databázi pomocí nového uživatele
Přihlaste se k serveru, zadejte určenou databázi a použijte nové uživatelské jméno a heslo. Tento příklad ukazuje příkazový řádek MySQL. Když použijete tento příkaz, zobrazí se výzva k zadání hesla uživatele. Použijte vlastní název serveru, název databáze a uživatelské jméno. Podívejte se, jak se připojit v následující tabulce.
--host mydemoserver.mysql.database.azure.com --database testdb --user db_user -p
Omezení oprávnění pro uživatele
Chcete-li omezit typ operací, které může uživatel spustit v databázi, musíte explicitně přidat operace v příkazu GRANT . Prohlédněte si následující příklad:
CREATE USER 'new_master_user'@'%' IDENTIFIED BY 'StrongPassword!';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_master_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Informace o azure_superuser
Všechny servery Azure Database for MySQL se vytvářejí pomocí uživatele s názvem "azure_superuser". Microsoft vytvořil systémový účet pro správu serveru a provádění monitorování, zálohování a pravidelné údržby. Technici na volání můžou tento účet také použít pro přístup k serveru během incidentu s ověřováním certifikátu a musí požádat o přístup pomocí procesů JIT (just-in-time).