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] をクリックします。
ページの左上隅にある [ユーザーの作成] をクリックし、次の情報を設定します。
ユーザー情報を設定します。
[ユーザーの作成] ダイアログボックスの [現在のデータベース権限] タブでは、次のロールを選択できます:
通常操作ロール:
read(現在のデータベースのデータをクエリする権限)およびreadWrite(現在のデータベースのデータを挿入、削除、変更、およびクエリする権限)管理者操作ロール:
dbAdmin(データベースオブジェクトの管理操作、データベースの読み書き権限なし) およびuserAdmin(現在のデータベースでユーザーを作成する権限)
パラメーター
説明
目的のデータベース
ドロップダウンリストから、ユーザーを割り当てるデータベースを選択します。
説明admin 以外のデータベースを選択した場合、作成するユーザーは標準ユーザーになります。
admin データベースを選択した場合、作成するユーザーは特権ユーザーになります。
ユーザー名
ユーザー名。
中国語文字はサポートされていません。
英字、数字、および特殊文字がサポートされています。
特殊文字には、
!#$%^&*()_+-=が含まれます。
パスワード
ユーザーのパスワード。
データのセキュリティを確保するため、パスワードは 8~32 文字で、次の文字タイプのうち少なくとも 3 種類を含む必要があります:
英大文字
英小文字
数字
特殊文字 (
!#$%^&*()_+-=)
パスワードの確認
パスワードを再度入力します。
ユーザーの権限を設定します。
説明目的のデータベースとして admin データベースを選択した場合:
[現在のデータベース権限] タブでは、[通常の操作ロール]、[管理者操作ロール]、[インスタンスレベル操作ロール]、[クラスター管理ロール]、[バックアップと復元ロール]、[スーパーユーザーロール]などの権限を設定できます。ロール権限の詳細については、「MongoDB ロール権限」をご参照ください。
[その他のデータベース権限] タブをクリックして、データベース名を追加し、そのデータベースのロール権限を設定することもできます。
目的のデータベースとして admin 以外のデータベースを選択した場合:
[現在のデータベース権限] タブでは、現在のデータベースの [通常の操作ロール] と [管理者操作ロール] のみを設定できます。ロール権限の詳細については、「MongoDB ロール権限」をご参照ください。
[その他のデータベース権限] タブは使用できません。
確認 をクリックします。
説明セキュリティコラボレーションモードのデータベースインスタンスは、セキュリティルールによって制限されます。操作を実行できない場合は、画面の指示に従うか、DBA または DMS 管理者にお問い合わせください。
PostgreSQLデータベースアカウントの作成
DMSコンソールV5.0 にログインします。
目的のデータベースにログオンします。詳細については、「データベースへのログオン」をご参照ください。
ホームページの左側のナビゲーションウィンドウで [Database instances] をクリックします。インスタンスリストで、目的のインスタンス名を右クリックし、[アカウント管理] をクリックします。
[アカウント管理] ページの左上隅にある [ユーザーの作成] をクリックします。
表示されたダイアログボックスで、次のパラメーターを設定します。
基本設定 タブをクリックし、パラメーターを設定します。
パラメーター
説明
[ユーザー名]
アカウントのユーザー名。
[パスワード]
ログオンパスワード。
[パスワードの確認]
ログオンパスワードを再度入力します。
[パスワードの有効期限]
パスワードの有効期限。例えば、2021年12月30日 00:00 にパスワードが期限切れになるように設定すると、その時刻にパスワードが無効になります。
このパラメーターは任意です。デフォルトでは、パスワードに有効期限はありません。
[接続制限]
アカウントの最大同時接続数。例えば、このパラメーターを 10 に設定すると、アカウントは最大 10 個のクライアントから同時にデータベースに接続できます。
デフォルト値は -1 で、接続数が制限されないことを示します。
[発言]
アカウントの説明。
[権限] タブをクリックし、目的の権限を選択します。
権限の種類
説明
[ログオンを許可]
ログオン権限です。対応する SQL コマンドは
LOGINとNOLOGINです。デフォルトでは、ログオンが許可されています。[ユーザー作成を許可]
データベースアカウントを作成する権限。対応する SQL コマンドは
CREATEROLEおよびNOCREATEROLEです。デフォルトでは、ユーザー作成は許可されています。[データベース作成を許可]
データベースを作成する権限。対応する SQL コマンドは
CREATEDBとNOCREATEDBです。デフォルトでは、データベースの作成が許可されています。
[確認] をクリックします。
[SQLのプレビュー] ダイアログボックスで、[確認] をクリックします。
説明セキュリティコラボレーションモードのデータベースインスタンスは、セキュリティルールによって制限されます。操作を実行できない場合は、画面の指示に従うか、DBA または DMS 管理者にお問い合わせください。セキュリティルールの調整方法の詳細については、「権限リファレンス」をご参照ください。
アカウントの編集または削除
アカウント編集機能を使用して、アカウントの [ユーザー名]、[パスワード]、MySQL の [グローバル権限] および [オブジェクト権限] を変更できます。
DMSコンソールV5.0 にログインします。
ホームページの左側のナビゲーションウィンドウで [Database instances] をクリックします。インスタンスリストで、目的のインスタンス名を右クリックし、[アカウント管理] をクリックします。
目的のアカウントを見つけて、[編集] または [削除] をクリックし、対応する操作を実行します。
Edit or delete an account
You can use the account editing feature to modify the [Username], [Password], and MySQL [Global permissions] and [Object permissions] of an account.
DMSコンソールV5.0 にログインします。
-
ホームページの左側メニューでデータベースインスタンスをクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[Database Account Management] をクリックします。
Find the target account and click [Edit] or [Delete] to perform the corresponding operation.
Switch the database account
DMSコンソールV5.0 にログインします。
In the Database instances area on the left, find the target instance.
Right-click the instance name and select [Edit Instance].
In the [Basic Information] section, enter the database account and password that you want to use for logon.
Click [Save].
データベースアカウントの許可の付与または取り消し
DMSコンソールV5.0 にログインします。
-
ホームページの左側メニューでデータベースインスタンスをクリックします。インスタンスリストで、対象のインスタンス名を右クリックし、[Database Account Management] をクリックします。
対象のアカウントを見つけ、[編集] をクリックします。
「権限」エリアで、対象の権限を選択して付与するか、選択を解除して取り消し、[確認] をクリックします。
権限リファレンス
MySQL グローバル権限
MySQL オブジェクト権限
MongoDB ロール権限
関連トピック
よくある質問
Q:権限ユーザーを作成する際に、CREATE_USER コマンドがセキュリティルールによってブロックされているというエラーが表示されます。この問題を解決するにはどうすればよいですか?
A:エラーダイアログボックスの手順に従って、この問題を解決してください。次の操作を実行します。
インスタンスに関連付けられているセキュリティルールセットの名前を表示します。
コンソールのホームページの左側にあるインスタンスリストで、ターゲットインスタンスを見つけて右クリックし、 [詳細を表示] をクリックします。
セキュリティルールを調整します。
-
DMS にログインします。
-
上部のメニューバーで、 を選択します。
-
[セキュリティルール] タブで、目的のルールセットを見つけ、[操作] 列の [編集] をクリックします。
-
左側のナビゲーションペインで、[SQL Correct] をクリックします。
[チェックポイント] を [SQL 実行ルール] に設定します。
[すべての DCL ステートメントを SQL Console で直接実行することを許可] セキュリティルールを見つけ、 [アクション] 列の [編集] をクリックします。
「ルールの編集」ダイアログボックスの [ルール DSL] セクションで、ルールを
if @fac.sql_type in ["DCL"] then @act.allow_execute_direct endに変更します。この構文は DCL カテゴリ全体に一致し、
CREATE USERやGRANTなどのすべての DCL ステートメントをカバーします。各 SQL タイプを個別にリストする必要はありません。このルールでは、allow_execute_directにより、SQL Console でステートメントを 直接実行 できるようになります。一方、allow_submitでは、承認のために チケットとして送信 することのみが許可されます。この2つのオプションは許可のレベルが異なるため、要件に応じて選択してください。
-
[送信] をクリックします。
リスク識別ルールを確認します。SQL 変更 > リスク識別ルール で、DCL ステートメントを高リスクとして識別するルールが存在するかどうかを確認します。そのようなルールが存在する場合は、無効化または調整してください。そうしないと、前の手順で設定した DCL ルールがオーバーライドされ、ルールの変更が有効になりません。
セキュリティルールを編集できるのは、 セキュリティコラボレーション モードのインスタンスのみです。 柔軟な管理 および 安定的な変更 モードのインスタンスは、編集できない組み込みのシステムルールを使用します。ターゲットインスタンスがセキュリティコラボレーション モードでない場合は、セキュリティコラボレーション ライセンスを購入し、上記の手順でルールを変更する前にコントロール モードを切り替えてください。また、変更したルールセットがターゲットインスタンスに関連付けられていることを確認してください。関連付けられていない場合、変更は有効になりません。