Data Management (DMS) では、MySQL、MongoDB、PostgreSQL データベースのデータベースアカウントを作成し、権限の種類の組み合わせをカスタマイズし、テーブルレベルの権限を付与できます。このトピックでは、DMS でデータベースアカウントを作成、編集、削除する方法と、アカウントの権限を管理する方法について説明します。
DMS は、MySQL、PostgreSQL、および MongoDB データベースでのみアカウント管理をサポートしています。その他のデータベースエンジンのアカウントを管理するには、対応するサービスのコンソールに移動してください。
前提条件
データベースは、次のいずれかの種類です。
MySQL: ApsaraDB RDS for MySQL、PolarDB for MySQL、AnalyticDB for MySQL、セルフマネージド MySQL データベース、セルフマネージド MariaDB データベース、または ApsaraDB for MariaDB。
ApsaraDB for MongoDB。
説明admin データベースでユーザーを作成する場合、dbAdminAnyDatabase、userAdmin、userAdminAnyDatabase など、ユーザーを作成する権限を持つ既存のユーザーが少なくとも 1 人いることを確認してください。
PostgreSQL: ApsaraDB RDS for PostgreSQL または AnalyticDB for PostgreSQL。
システムロールが DMS 管理者、DBA、または一般ユーザー (インスタンス所有者) であること。 詳細については、「システムロール」をご参照ください。
ターゲットデータベースの [データベースアカウント] と [データベースパスワード] が取得されていること。
DMS コンソールでアカウントを作成する場合、DMS にログインするために使用する [データベースアカウント] がユーザーを作成する権限を持っていることを確認してください。
アカウント権限管理の例
データベースアカウントの管理
データベースアカウントの作成
DMS で作成したデータベースアカウントは標準アカウントです。
DMS 管理者は、DMS コンソールへのアクセスを管理し、操作を承認する RAM ユーザーです。特権データベースアカウントは、データベースインスタンスレベルで定義され、CREATE USER や GRANT などのデータベース操作権限を持ちます。この2つは異なる権限システムに属します。DMS で CREATE USER などのデータベース管理操作を実行するには、特権データベースアカウントを使用する必要があります。DMS 管理者は、これらのデータベースレベルの権限を持っていません。
DMS で CREATE USER を実行した際に次のエラーが発生した場合:
execute create_user failed: you need (at least one of) the create user privilege for this operation次の方法で問題をトラブルシューティングしてください。
ApsaraDB RDS コンソールで特権アカウントを作成し、そのアカウントで DMS にログインしてから、操作を再試行してください。
または、ApsaraDB RDS コンソールの [アカウント管理] ページで直接データベースユーザーを作成してください。
DMS インスタンスでセキュリティホスティングモードが有効になっている場合、DMS でデータベースアカウントを切り替えることができない可能性があります。この場合は、ApsaraDB RDS コンソールでアカウントを作成するか、インスタンスのセキュリティホスティング設定を調整してから再試行してください。
MySQL データベースアカウントの作成
DMSコンソールV5.0 にログインします。
-
対象のデータベースにログインします。詳細については、「データベースへのログイン」をご参照ください。
-
ホームページの左側メニューでデータベースインスタンスをクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[Database Account Management] をクリックします。
-
[Database Account Management] ページで、左上隅にある [Create Database Account] をクリックします。
表示されたダイアログボックスで、次のパラメータを設定します。
基本設定 タブをクリックし、パラメータを設定します。
パラメータ
説明
[データベースアカウント]
データベースへのログインに使用するアカウント名です。
[ホスト]
アカウントがデータベースへのアクセスを許可される IP アドレスです。
説明このパラメータを空にした場合、アカウントは特定の IP アドレスに制限されません。デフォルト値は
%です。[パスワード]
ログインパスワードです。
[パスワードの確認]
ログインパスワードを再度入力します。
説明上記のパラメータから生成される SQL ステートメントは次のようになります:
CREATE USER `username`@`host` IDENTIFIED BY `password`;[詳細オプション] を設定するには、[詳細オプション] ボタンをクリックして各項目を設定します。
たとえば、次の図の設定から生成される SQL ステートメントは次のようになります:
GRANT USAGE ON *.* TO 'username'@'host' WITH MAX_QUERIES_PER_HOUR 100 MAX_UPDATES_PER_HOUR 200 MAX_CONNECTIONS_PER_HOUR 300 MAX_USER_CONNECTIONS 400;
グローバル権限 タブをクリックし、対象の権限を選択します。グローバル権限の詳細については、「MySQL グローバル権限」をご参照ください。
説明標準アカウントを使用していて、権限タイプリストに対象の権限が見つからない場合、アカウントに必要な権限がないか、インスタンスタイプがその権限をサポートしていない可能性があります。アカウントの権限が不足している場合は、特権アカウントで再試行してください。
オブジェクトのアクセス許可 タブをクリックし、パラメータを設定します。オブジェクト権限の詳細については、「MySQL オブジェクト権限」をご参照ください。
たとえば、次の図の設定から生成される SQL ステートメントは次のようになります:
GRANT SELECT,INSERT ON `rds_db`.* TO 'username'@'host'; GRANT DELETE ON `rds_db`.`rds_table` TO 'username'@'host';
確認 をクリックします。
Sqlのプレビュー ダイアログボックスで、確認 をクリックします。
説明セキュリティコラボレーションモードのデータベースインスタンスは、セキュリティルールによって制限されます。操作を実行できない場合は、画面の指示に従うか、DBA または DMS 管理者にお問い合わせください。セキュリティルールの調整方法の詳細については、「FAQ」をご参照ください。
MongoDB データベースアカウントの作成
DMSコンソールV5.0 にログインします。
対象のデータベースにログインします。詳細については、「データベースへのログイン」をご参照ください。
重要MongoDB レプリカセットインスタンスの場合は、プライマリノードにログインします。
-
ホームページの左側メニューでデータベースインスタンスをクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[Database Account Management] をクリックします。
ページの左上にある [ユーザーの作成] をクリックし、次の情報を設定します。
ユーザー情報を設定します。

パラメータ
説明
対象データベース
ドロップダウンリストから、ユーザーが属するデータベースを選択します。
説明admin 以外のデータベースを選択すると、作成されるユーザーは標準ユーザーになります。
admin データベースを選択すると、作成されるユーザーは特権ユーザーになります。
ユーザー名
ユーザーの名前です。
中国語文字はサポートされていません。
英字、数字、特殊文字がサポートされています。
特殊文字には次が含まれます:
!#$%^&*()_+-=
パスワード
ユーザーのパスワードです。
データセキュリティを確保するため、パスワードは 8~32 文字で、次の文字種のうち少なくとも 3 つを含む必要があります。
大文字
小文字
数字
特殊文字 (
!#$%^&*()_+-=)
パスワードの確認
パスワードを再度入力します。
ユーザーの権限を設定します。
説明対象データベースとして admin データベースを選択した場合:
[現在のデータベース権限] タブで、[通常の操作ロール]、[管理者操作ロール]、[インスタンスレベルの操作ロール]、[クラスター管理ロール]、[バックアップおよび復元ロール]、[スーパーユーザーロール] などの権限を設定できます。ロール権限の詳細については、「MongoDB ロール権限」をご参照ください。
[その他のデータベース権限] タブをクリックして、データベース名を追加し、対応するデータベースのロール権限を設定することもできます。
対象データベースとして admin 以外のデータベースを選択した場合:
[現在のデータベース権限] タブで、現在のデータベースに対して [通常の操作ロール] と [管理者操作ロール] のみを設定できます。ロール権限の詳細については、「MongoDB ロール権限」をご参照ください。
[その他のデータベース権限] タブは使用できません。
確認 をクリックします。
説明セキュリティコラボレーションモードのデータベースインスタンスは、セキュリティルールによって制限されます。操作を実行できない場合は、画面の指示に従うか、DBA または DMS 管理者にお問い合わせください。
PostgreSQL データベースアカウントの作成
DMSコンソールV5.0 にログインします。
対象のデータベースにログインします。詳細については、「データベースへのログイン」をご参照ください。
ホームページの左側のナビゲーションペインで [データベースインスタンス] をクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[アカウント管理] をクリックします。
[アカウント管理] ページで、左上の [ユーザーの作成] をクリックします。
表示されたダイアログボックスで、次のパラメータを設定します。
基本設定 タブをクリックし、パラメータを設定します。
パラメータ
説明
[ユーザー名]
アカウントのユーザー名です。
[パスワード]
ログインパスワードです。
[パスワードの確認]
ログインパスワードを再度入力します。
[パスワードの有効期限]
パスワードの有効期限です。たとえば、2021 年 12 月 30 日 00:00 に設定すると、その時刻にパスワードが無効になります。
このパラメータはオプションです。デフォルトでは、パスワードは期限切れになりません。
[接続制限]
アカウントの最大同時接続数です。たとえば、このパラメータを 10 に設定すると、アカウントは最大 10 のクライアントから同時にデータベースに接続できます。
デフォルト値は -1 で、接続数が無制限であることを示します。
[発言]
アカウントの説明です。
[権限] タブをクリックし、対象の権限を選択します。
権限タイプ
説明
[ログインを許可]
ログイン権限です。対応する SQL コマンドは
LOGINとNOLOGINです。デフォルトでは、ログインは許可されていません。[ユーザー作成を許可]
データベースアカウントを作成する権限です。対応する SQL コマンドは
CREATEROLEとNOCREATEROLEです。デフォルトでは、ユーザー作成は許可されていません。[データベース作成を許可]
データベースを作成する権限です。対応する SQL コマンドは
CREATEDBとNOCREATEDBです。デフォルトでは、データベース作成は許可されていません。
[確認] をクリックします。
[SQL プレビュー] ダイアログボックスで、[確認] をクリックします。
説明セキュリティコラボレーションモードのデータベースインスタンスは、セキュリティルールによって制限されます。操作を実行できない場合は、画面の指示に従うか、DBA または DMS 管理者にお問い合わせください。セキュリティルールの調整方法の詳細については、「FAQ」をご参照ください。
アカウントの編集または削除
アカウント編集機能を使用して、アカウントの [ユーザー名]、[パスワード]、および MySQL の [グローバル権限] と [オブジェクト権限] を変更できます。
DMSコンソールV5.0 にログインします。
ホームページの左側のナビゲーションペインで [データベースインスタンス] をクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[アカウント管理] をクリックします。
対象のアカウントを見つけて、[編集] または [削除] をクリックし、対応する操作を実行します。
アカウントの編集または削除
アカウント編集機能を使用して、アカウントの [ユーザー名]、[パスワード]、および MySQL の [グローバル権限] と [オブジェクト権限] を変更できます。
DMSコンソールV5.0 にログインします。
-
ホームページの左側メニューでデータベースインスタンスをクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[Database Account Management] をクリックします。
対象のアカウントを見つけて、[編集] または [削除] をクリックし、対応する操作を実行します。
データベースアカウントの切り替え
DMSコンソールV5.0 にログインします。
左側のナビゲーションペインにある [データベースインスタンス] エリアで、対象のインスタンスを見つけます。
インスタンス名を右クリックし、[インスタンスの編集] を選択します。
[基本情報] セクションで、ログインに使用するデータベースアカウントとパスワードを入力します。
[保存] をクリックします。
データベースアカウント権限の付与または取り消し
DMSコンソールV5.0 にログインします。
-
ホームページの左側メニューでデータベースインスタンスをクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[Database Account Management] をクリックします。
対象のアカウントを見つけて、[編集] をクリックします。
権限エリアで、対象の権限を選択して付与するか、対象の権限をクリアして取り消し、[確認] をクリックします。
権限リファレンス
MySQL グローバル権限
MySQL オブジェクト権限
MongoDB ロール権限
関連トピック
よくある質問
Q:権限ユーザーを作成する際に、CREATE_USER コマンドがセキュリティルールによってブロックされているというエラーが表示されます。この問題を解決するにはどうすればよいですか。
A:エラーダイアログボックスの手順に従って、この問題を解決してください。次の操作を実行します。
インスタンスに関連付けられているセキュリティルールセットの名前を確認します。
コンソールのホームページの左側にあるインスタンスリストで、対象のインスタンスを見つけて右クリックし、[View Details] をクリックします。
セキュリティルールを調整します。
-
DMS にログインします。
-
上部のメニューバーで、 を選択します。
-
[セキュリティルール] タブで、目的のルールセットを見つけ、[操作] 列の [編集] をクリックします。
-
左側のナビゲーションペインで、[SQL Correct] をクリックします。
[Checkpoint] を [SQL Execution Rules] に設定します。
[Allow all DCL statements to be executed directly in the SQL console] セキュリティルールを見つけて、[操作] 列の [Edit] をクリックします。
[Edit Rule] ダイアログボックスの [Rule DSL] セクションで、ルールを次のように変更します:
if @fac.sql_type in ["DCL"] then @act.allow_execute_direct endこの構文は DCL カテゴリ全体に一致するため、各 SQL タイプを個別にリストしなくても、
CREATE USERやGRANTなどのすべての DCL ステートメントが対象となります。このルールにおいて、allow_execute_directは SQL コンソールでステートメントを直接実行することを許可するのに対し、allow_submitは承認を得るためにステートメントをチケットとして申請することのみを許可します。この 2 つのオプションは許容度が異なるため、要件に応じて選択してください。
-
[Submit] をクリックします。
リスク識別ルールを確認します。[SQL Change] > [Risk Identification Rules] で、DCL ステートメントを高リスクとして識別するルールがあるかどうかを確認します。そのようなルールが存在する場合は、無効化または調整してください。そうしないと、前の手順で設定した DCL ルールが上書きされ、ルールの変更が有効になりません。
セキュリティルールを編集できるのは、セキュリティコラボレーションモードのインスタンスのみです。柔軟な管理モードと 安定的な変更モードのインスタンスは、編集できない組み込みのシステムルールを使用します。対象のインスタンスがセキュリティコラボレーションモードでない場合は、セキュリティコラボレーションライセンスを購入してコントロールモードを切り替えてから、上記の手順に従ってルールを変更してください。また、変更したルールセットが対象のインスタンスに関連付けられていることを確認してください。そうでない場合、変更は有効になりません。