次の方法で共有


Azure Database for MySQL でユーザーを作成する

適用対象: Azure Database for MySQL - 単一サーバー Azure Database for MySQL - フレキシブル サーバー

重要

Azure Database for MySQL シングル サーバーは廃止パスにあります。 Azure Database for MySQL フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for MySQL フレキシブル サーバーへの移行の詳細については、Azure Database for MySQL シングル サーバーの現状に関するページを参照してください

この記事では、Azure Database for MySQL でユーザーを作成する方法について説明します。

Note

この記事では、Microsoft が使用しなくなった "スレーブ" という用語を参照しています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。

Azure Database for MySQL サーバーの作成時に、サーバー管理者のユーザー名とパスワードが指定されています。 詳細については、こちらのクイックスタートをご覧ください。 サーバー管理者のユーザー名は、Azure portal で確認できます。

サーバー管理者のユーザーには、次の特権があります。

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 です

MySQL サーバー用の Azure Database を作成すると、最初のサーバー管理者アカウントを使用して、追加のユーザーを作成したり、それらのユーザーに管理者アクセス権を付与したりできます。 また、サーバー管理者アカウントを使用して、個々のデータベース スキーマにアクセスできる権限の少ないユーザーを作成することもできます。

Note

SUPER 特権と DBA ロールはサポートされていません。 制限事項に関する記事に記載されている権限を確認して、サービスでサポートされていない権限を理解してください。

validate_passwordcaching_sha2_password などのパスワード プラグインはサービスでサポートされていません。

データベースを作成します。

  1. 接続情報と管理者のユーザー名を取得します。

    データベース サーバーに接続するには、完全なサーバー名と管理者サインイン資格情報が必要です。 Azure portal 内のサーバーの [概要] ページまたは [プロパティ] ページでサーバー名とサインイン情報を簡単に確認できます。

  2. 管理者のアカウントとパスワードを使用して、データベース サーバーに接続します。 お好みのクライアント ツール、MySQL Workbench、mysql.exe または HeidiSQL を使用します。

  1. 次の SQL コードを編集して実行します。 プレースホルダー値 db_user を目的の新しいユーザー名に置き換えます。 プレースホルダー値 testdb をデータベース名に置き換えます。

    この SQL コードでは、testdb という名前の新しいデータベースを作成します。 次に、MySQL サービスに新しいユーザーを作成し、新しいデータベース スキーマ (testdb.*) に関するすべての権限をそのユーザーに付与します。

    CREATE DATABASE testdb;
    

管理者以外のユーザーを作成する

データベースの作成が済んだので、CREATE USER MySQL ステートメントを使用して管理者以外のユーザーを作成できます。

CREATE USER 'db_user'@'%' IDENTIFIED BY 'StrongPassword!';

GRANT ALL PRIVILEGES ON testdb . * TO 'db_user'@'%';

FLUSH PRIVILEGES;

ユーザーのアクセス許可を確認する

ユーザー db_usertestdb データベースで使用できる特権を表示するには、SHOW GRANTS MySQL ステートメントを実行します。

USE testdb;

SHOW GRANTS FOR 'db_user'@'%';

新しいユーザーを使用してデータベースに接続する

指定したデータベースを指定し、新しいユーザー名とパスワードを使用して、サーバーにサインインします。 この例では、MySQL のコマンド ラインを示します。 このコマンドを使用すると、ユーザーのパスワードの入力が求められます。 実際のサーバー名、データベース名、およびユーザー名を使用します。 次の表では、単一サーバーとフレキシブル サーバーの接続方法を示しています。

サーバーの種類 使用方法
シングル サーバー mysql --host mydemoserver.mysql.database.azure.com --database testdb --user db_user@mydemoserver -p
フレキシブル サーバー mysql --host mydemoserver.mysql.database.azure.com --database testdb --user db_user -p

ユーザーの権限を制限する

ユーザーがデータベースで実行できる操作の種類を制限するには、GRANT ステートメントで明示的に操作を追加する必要があります。 次の例を参照してください。

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;

azure_superuser について

すべての Azure Database for MySQL サーバーは、"azure_superuser" というユーザーを使用して作成されます。 Microsoft は、システム アカウントを作成して、監視、バックアップ、その他の定期的なメンテナンスを行うサーバーを管理しています。 また、オンコール エンジニアも、証明書の認証に関するインシデントの間にサーバーにアクセスするためにこのアカウントを使用する場合があり、Just-In-Time (JIT) プロセスを使用してアクセスを要求する必要があります。

次のステップ