すべてのプロダクト
Search
ドキュメントセンター

Data Management:MySQLデータベースでのユーザー権限の管理

最終更新日:Sep 04, 2024

データ管理 (DMS) は、MySQLデータベースの詳細な権限制御をサポートしています。 たとえば、データベース、テーブル、フィールド、およびビューに対する権限を管理できます。 このトピックでは、DMSでMySQLデータベースのユーザー権限を管理する方法について説明します。

前提条件

  • ApsaraDB RDS for MySQLPolarDB for MySQL、AnalyticDB for MySQLインスタンス、自己管理型MySQLデータベース、ネイティブMariaDBデータベース、またはApsaraDB for MariaDBデータベースが使用されています。

  • DMS管理者、データベース管理者 (DBA) 、またはインスタンスの所有者などの通常のユーザーです。 詳細については、「システムロール」をご参照ください。

  • MongoDBデータベースのデータベースアカウントデータベースパスワードが取得されます。

概要

対応するコンソールで、ApsaraDB RDS for MySQLインスタンスまたはPolarDB for MySQLインスタンスのMySQLデータベースに対する大まかな権限を管理できます。 たとえば、他のユーザーにMySQLデータベースの読み取り専用権限または読み取りおよび書き込み権限を付与できます。 MySQLデータベースでDMLステートメントまたはDDLステートメントを実行する権限を他のユーザーに付与することもできます。 ただし、より柔軟できめ細かい権限管理が必要な場合があります。 この場合、DMSのユーザー権限管理機能を使用できます。 例:

  • SELECTステートメントとUPDATEステートメントを実行するためのグローバル権限をユーザーAに付与できます。

    説明

    グローバル権限は、データベースインスタンス内のすべてのデータベースに適用されます。 詳細については、「サポートされているグローバル権限」をご参照ください。

  • ユーザーBに、テーブルに対してSELECTステートメントを実行する権限、またはフィールドに対してUPDATEステートメントを実行する権限を付与できます。

    説明

    詳細な権限は、データベースインスタンス内の特定のデータベースまたはすべてのデータベースに適用できます。 詳細については、「サポートされている詳細権限」をご参照ください。

ユーザーの作成

  1. DMSコンソールV5.0 にログインします。

  2. PostgreSQLデータベースにログインします。 詳細については、「データベースインスタンスへのログイン」をご参照ください。

  3. DMSコンソールの左側のナビゲーションウィンドウで、管理するインスタンスを右クリックし、アカウント管理 を選択します。

    説明

    DMSコンソールにシンプルモードでログインする場合は、左側のナビゲーションウィンドウで [データベースインスタンス] をクリックします。 表示されるインスタンスリストで、管理するインスタンスを右クリックし、アカウント管理 を選択します。

  4. アカウント管理 ページで、左上の 作成ユーザー をクリックします。

  5. [ユーザーの作成] ダイアログボックスで、次の手順を実行します。

    1. 基本設定 タブで、次の表に示すパラメーターを設定します。

      Create User dialog box

      パラメーター

      説明

      ユーザー名

      データベースへのログインに使用するユーザーの名前。

      ホスト

      アカウントがIPアドレスからデータベースにアクセスできることを示します。

      説明

      このパラメーターを設定しない場合、ユーザーは特定のIPアドレスから許可されたデータベースにアクセスすることに制限されません。 このパラメーターのデフォルト値は % です。

      パスワード

      現在のインスタンスのデータベースへのログインに使用するパスワード。

      パスワードの確認

      パスワードをもう一度入力して、パスワードを確認します。

      説明

      上記のパラメーターを設定すると、DMSは設定したパラメーターに基づいてSQL文を自動的に生成します。 次に、DMSは現在のインスタンスの各データベースのステートメントを実行します。 SQL文の構文は、CREATE USER 'Username' @ 'Hostname' IDENTIFIED BY 'Password'; です。

      [詳細オプション] をクリックすると、さらに設定を完了できます。

      たとえば、次の図に示すように、ユーザーに特定の制限を設定できます。 この場合、DMSは次のSQL文を生成して実行します。

      GRANT USAGE ON *.* TO 'Username'@'Hostname' WITH MAX_QUERIES_PER_HOUR 100 MAX_UPDATES_PER_HOUR 200 MAX_CONNECTIONS_PER_HOUR 300 MAX_USER_CONNECTIONS 400;

      Advanced Options

    2. グローバル権限 タブをクリックし、ユーザーに付与する1つ以上の権限を選択します。

      Global permissions tab

      説明

      必要な権限が見つからない場合、その権限はインスタンスでサポートされていないか、Alibaba Cloudアカウントに権限を付与する権限がありません。 標準アカウントを使用する場合は、特権アカウントを使用してDMSコンソールにログインし、この手順を再試行します。

    3. オブジェクトのアクセス許可 タブをクリックし、パラメーターを設定して、ユーザーにきめ細かい権限を付与します。

      たとえば、次の図に示すように、ユーザーがデータベース内のデータを照会または挿入したり、データベース内のテーブルからデータを削除したりできるようにすることができます。 この場合、DMSは次のSQL文を生成して実行します。

      GRANT SELECT,INSERT ON 'rds_db'.* TO 'Username' @ 'Hostname'; 
       GRANT DELETE ON 'rds_db'.'rds_table' TO 'Username' @ 'Hostname'; 

      Object permissions tab

  6. 確認 をクリックします。

  7. Sqlのプレビュー メッセージで、確認 をクリックします。

    説明

    SQL文は、設定したパラメーターに基づいて生成できます。 データベースインスタンスがSecurity Collaborationモードで管理されている場合、セキュリティルールによりSQL文の実行に失敗することがあります。 この場合、画面上の指示に従って操作を実行するか、データベース管理者 (DBA) またはDMS管理者に連絡することができます。 セキュリティルールの変更方法については、「このトピックのFAQ」をご参照ください。

ユーザーの変更または削除

管理を許可されているユーザーのユーザー名パスワードグローバル権限詳細権限を変更できます。

  1. DMSコンソールV5.0 にログインします。

  2. DMSコンソールの左側のナビゲーションウィンドウで、管理するインスタンスを右クリックし、アカウント管理 を選択します。

    説明

    DMSコンソールにシンプルモードでログインする場合は、左側のナビゲーションウィンドウで [データベースインスタンス] をクリックします。 表示されるインスタンスリストで、管理するインスタンスを右クリックし、アカウント管理 を選択します。

  3. [アカウント管理] ページで、管理するユーザーを探し、[操作] 列の [編集] をクリックしてユーザーに関する情報を変更するか、[操作] 列の [削除] をクリックしてユーザーを削除します。

サポートされているグローバル権限

権限

オブジェクト

説明

CREATE

データベース、テーブル、またはインデックス

ユーザーがデータベース、テーブル、またはインデックスを作成できるようにします。

DROP

データベース、テーブル、またはビュー

ユーザーがデータベース、テーブル、またはビューを削除できるようにします。

GRANTオプション

データベース、テーブル、またはストアドプロシージャ

ユーザーが他のユーザーに1つ以上の権限を付与または取り消すことを許可します。

REFERENCES

データベース、テーブル、またはフィールド

ユーザーがデータベース、テーブル、またはフィールドを参照するための外部キーを作成できるようにします。

LOCK TABLES

データベース

ユーザーがデータベース内のテーブルをロックできるようにします。

EVENT

データベース

ユーザーがデータベース内のイベントを照会、作成、変更、または削除できるようにします。

ALTER

テーブルまたはビュー

ユーザーがテーブルまたはビューを変更できるようにします。 例えば、ユーザは、テーブルにフィールドを追加したり、インデックスを作成したり、テーブル内のフィールドを変更したりすることができる。

DELETE

ユーザーがテーブルからデータを削除できるようにします。

INDEX

ユーザーがテーブルのインデックスを作成または削除できるようにします。

INSERT

テーブルまたはフィールド

ユーザーがテーブルまたはフィールドにデータを挿入できるようにします。

SELECT

テーブルまたはフィールド

ユーザーがテーブルまたはフィールド内のデータを照会できるようにします。

UPDATE

テーブルまたはフィールド

ユーザーがテーブルまたはフィールドのデータを更新できるようにします。

ビューの作成

ビュー

ユーザーがビューを作成できるようにします。

SHOW VIEW

ビュー

ユーザーがビューをチェックできるようにします。

TRIGGER

トリガー

ユーザーがトリガーを作成、削除、実行、または表示できるようにします。

ALTER ROUTINE

ストアドプロシージャ

ユーザーがストアドプロシージャを変更できるようにします。

CREATE ROUTINE

ストアドプロシージャ

ユーザーがストアドプロシージャを作成できるようにします。

EXECUTE

ストアドプロシージャ

ユーザーがストアドプロシージャを実行できるようにします。

FILE

サーバホストでのファイルアクセス

ユーザーがサーバーホスト上のファイルにアクセスできるようにします。

CREATE TEMPORARY TABLES

サーバー管理

ユーザーがサーバー上に一時テーブルを作成できるようにします。

CREATE USER

サーバー管理

ユーザーがサーバー上にユーザーを作成できるようにします。

PROCESS

サーバー管理

ユーザーがサーバー上で実行されているスレッドに関する情報を照会できるようにします。

RELOAD

サーバー管理

FLUSH-HOSTSFLUSH-LOGSFLUSH-PRIVILEGESFLUSH-STATUSFLUSH-TABLESFLUSH-THREADSREFRESHRELOADなどのコマンドをサーバー上で実行できます。

REPLICATION CLIENT

サーバー管理

ユーザーは、プライマリサーバー、レプリカサーバー、およびバイナリログのステータスを確認できます。 この権限はレプリケーションに必要です。 レプリカサーバーをソースサーバーに接続するために作成されたユーザーにこの権限を付与します。

REPLICATION SLAVE

サーバー管理

ユーザーは、プライマリサーバー、レプリカサーバー、およびバイナリログのステータスを確認できます。 この権限はレプリケーションに必要です。 レプリカサーバーをソースサーバーに接続するために作成されたユーザーにこの権限を付与します。

データを表示する

サーバー管理

ユーザーがサーバー上のすべてのデータベースの名前を表示できるようにします。

シャットダウン

サーバー管理

ユーザーがサーバーをシャットダウンできるようにします。

スーパー

サーバー管理

ユーザーがKILLステートメントを実行して、サーバー上で実行されているスレッドを終了できるようにします。

説明

ApsaraDB RDS for MySQLおよびApsaraDB for MariaDBはSUPER権限をサポートしていません。

サポートされている詳細な権限

権限

オブジェクト

説明

CREATE

データベース、テーブル、またはインデックス

ユーザーがデータベース、テーブル、またはインデックスを作成できるようにします。

DROP

データベース、テーブル、またはビュー

ユーザーがデータベース、テーブル、またはビューを削除できるようにします。

GRANTオプション

データベース、テーブル、またはストアドプロシージャ

ユーザーが他のユーザーに1つ以上の権限を付与または取り消すことを許可します。

REFERENCES

データベース、テーブル、またはフィールド

ユーザーがデータベース、テーブル、またはフィールドを参照するための外部キーを作成できるようにします。

LOCK TABLES

データベース

ユーザーがデータベース内のテーブルをロックできるようにします。

EVENT

データベース

ユーザーがデータベース内のイベントを照会、作成、変更、または削除できるようにします。

ALTER

テーブルまたはビュー

ユーザーがテーブルまたはビューを変更できるようにします。 例えば、ユーザは、テーブルにフィールドを追加したり、インデックスを作成したり、テーブル内のフィールドを変更したりすることができる。

DELETE

ユーザーがテーブルからデータを削除できるようにします。

INDEX

ユーザーがテーブルのインデックスを作成または削除できるようにします。

INSERT

テーブルまたはフィールド

ユーザーがテーブルまたはフィールドにデータを挿入できるようにします。

SELECT

テーブルまたはフィールド

ユーザーがテーブルまたはフィールド内のデータを照会できるようにします。

UPDATE

テーブルまたはフィールド

ユーザーがテーブルまたはフィールドのデータを更新できるようにします。

ビューの作成

ビュー

ユーザーがビューを作成できるようにします。

SHOW VIEW

ビュー

ユーザーがビューをチェックできるようにします。

TRIGGER

トリガー

ユーザーがトリガーを作成、削除、実行、または表示できるようにします。

よくある質問

Q: CREATE USERステートメントを実行して、セキュリティルールのために特定のアクセス許可を持つユーザーを作成できないことがシステムから通知されるのはなぜですか。

A: 返されたエラーメッセージに基づいてエラーをトラブルシューティングします。 以下の手順を実行します。

  1. インスタンスに設定されているセキュリティルールセットを照会します。

    左側のナビゲーションウィンドウで、現在のインスタンスを右クリックし、[詳細を表示] を選択します。

  2. セキュリティルールを変更します。

    1. 最初に DMSコンソールV5.0

    2. 上部のナビゲーションバーで、[セキュリティと仕様] > [セキュリティルール] を選択します。

    3. [セキュリティルール] タブで、管理するセキュリティルールセットを見つけ、[操作] 列の [編集] をクリックします。

    4. 左側のナビゲーションウィンドウで、[SQL Correct] をクリックします。

    5. [チェックポイント] パラメーターを [SQL実行ルール] に設定します。

    6. セキュリティルールリストで、[すべてのDCLはSQLConsoleで直接実行できます] セキュリティルールを見つけ、[操作] 列の [編集] をクリックします。

    7. [Change Rule - SQL Correct] ダイアログボックスで、SQLエディターにCREATE_USERを追加します。

  3. [送信] をクリックします。