スーパー ユーザー アクセス権について理解する

完了

Azure Database for MySQL サーバーが作成されるときに最初に作成されるユーザーは、サービス管理者です。 そのユーザー アカウントには、新しいユーザーの作成やサーバーの監視など、サブスクリプション内のすべてのリソースへのスーパー ユーザー アクセス権があります。

管理者アカウントにはすべてのリソースへのフル アクセス権があるため、管理者アカウントを制限して監視する必要があります。 特に次の点に違いがあります。

  • 割り当てられたすべての管理者アカウントのインベントリを保持します。
  • 最初の管理者が利用できない場合は、共同管理者を割り当ててアクセス権を提供します。
  • 管理者アカウントを、実用的な最小限の数に制限します。 管理者アカウントが侵害された場合、ハッカーはサーバーにフル アクセスできます。
  • 動作を監視し、異常なアカウントの動作を追跡します。
  • タスクの完了に必要な期間だけ、追加の管理者アカウントを割り当てます。

注意

管理者は、サーバー レベルではなくサブスクリプション レベルで追加されます。 Azure portal で、正しいサブスクリプションに移動します。 左側のメニューで [アクセス制御 (IAM)] を選択します。 [+ 追加][共同管理者の追加] の順に選びます。

管理アカウントの制御と監視に関するガイダンスについては、Azure Security Center の [アクセスとアクセス許可の管理] を参照してください。

注意

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

このサーバー管理者ユーザーは、次の特権を持ちます。

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

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

Azure Database for MySQL はサービスであり、一部のロールはサポートされていません。具体的には次のとおりです。

  • DBA ロールは制限されています。 サーバーで作成された管理者ユーザー アカウントを使います。 これにより、DDL と DML のほとんどのステートメントを実行できます。
  • SUPER 特権は制限されています。 サーバーで作成された管理者ユーザー アカウントを使います。
  • Azure Database for MySQL にはルート ユーザーはありません。 代わりに、管理者ユーザー ロールまたは所有者を使います。

注意

DEFINER は、作成するために SUPER 特権が必要であり、制限されています。 バックアップを使ってデータをインポートしている場合は、手動で、または mysqlpump の実行時に -skip-definer コマンドを使って、CREATE DEFINER コマンドを削除します。