組み込みの Azure MySQL データベース ロールについて説明する
Azure ロールベースのアクセス制御 (RBAC) を使用すると、Azure ロールを割り当てることで、Azure リソースへのアクセスを管理できます。 RBAC は、次の 3 つの要素で動作します。
- セキュリティ プリンシパル - ユーザー、グループ、サービス プリンシパル、またはマネージド ID。
- ロールの定義 - アクセス許可または制限のセット。
- スコープ - アクセスまたは制限が適用されるコンテキストです。
Azure Database for MySQL サーバーが作成されると、組み込みのサーバー ロールが含まれます。カスタム ロールを作成することもできます。 Azure Database for MySQL を使用すると、アクセス制御 (IAM) メニューからサーバーへのアクセスを表示および変更できます。
ロール割り当てを追加
ロール定義をユーザーまたはグループに割り当てるには:
- Azure portal で、MySQL サーバーに移動します。 左側のメニューで [アクセス制御 (IAM)] を選択します。
- 上部のメニューから [+ 追加] を選択し、[ロールの割り当ての追加] を選択します。 ロール定義の一覧が、それぞれの説明と共に表示されます。
- 割り当てるロール定義を選択して、[メンバー] を選択します。
- [ユーザー、グループ、またはサービス プリンシパルにアクセスを割り当てる] を選択します。
- [メンバー] の横で、[+ メンバーの選択] を選択します。 ユーザーの一覧が表示されます。 1 つまたは複数のユーザーまたはグループを選択してから、[選択] を選択します。
- 割り当てるには、[確認と割り当て] を選択します。
Azure RBAC を使用して、Azure Database for MySQL サーバーへのアクセスを制御します。 個々のデータベース内では、SQL クエリを使用してユーザーを作成し、ユーザーのアクセス許可を構成します。
メモ
Azure RBAC は、データベース内のユーザーのアクセス許可には影響しません。 データベース ユーザーを作成するには、管理者資格情報でサインインする必要があります。 MySQL Workbench などのクライアント ツールを使用して、データベース サーバーに接続します。 管理者以外のユーザーを作成するには、CREATE USER ステートメントを使用します。 db_user をユーザー名に、StrongPassword を強力なパスワードに、testdb を自分のデータベース名に置き換えてから、次のコードを実行します。
CREATE USER 'db_user'@'%' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON testdb . * TO 'db_user'@'%';
FLUSH PRIVILEGES;
SHOW GRANTS
ステートメントを使用してアクセス許可を確認してから、プレースホルダーの値を実際の値に置き換えます。
USE testdb;
SHOW GRANTS FOR 'db_user'@'%';
ユーザーがデータベースでできることを定義するには、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;
注
この記事には、Microsoft が使用しなくなった "スレーブ" という用語への言及が含まれています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。