Data Management (DMS) を使用すると、グラフィカルインターフェイスまたはコマンドラインインターフェイス (CLI) を通じて ApsaraDB for MongoDB のデータベースアカウントを管理できます。グラフィカルインターフェイスを使用すると、コマンドを記述することなくアカウントの作成、編集、削除が可能です。スクリプトやシェルによるアカウント管理が必要な場合は、CLI を使用します。
前提条件
開始する前に、以下を確認してください。
-
DMS アカウントに管理者、データベース管理者 (DBA)、またはインスタンスオーナーのロールが付与されていること。詳細については、「システムロール」をご参照ください。
-
作成するデータベースアカウント名が、対象データベース内で一意であること。
-
特定のコレクションへのアクセスを制限する必要がある場合は、コマンドラインインターフェイスを使用してアカウントと権限を管理してください。詳細については、「mongo シェルを使用したデータベースアカウントの管理」をご参照ください。
ユーザー管理機能の使用
DMS コンソールのユーザー管理機能を使用すると、コマンドを記述することなくデータベースアカウントの作成、編集、削除が可能です。
データベースアカウントの作成
-
DMS コンソール V5.0 にログインします。
-
MongoDB データベースにログインします。詳細については、「データベースインスタンスへのログイン」をご参照ください。
重要インスタンスがレプリカセットインスタンスの場合は、プライマリノードにログインしてください。
-
左側のナビゲーションペインで、インスタンスを右クリックし、[アカウント管理] を選択します。
-
左上隅の[データベースアカウントの作成]をクリックします。
-
アカウントパラメータを設定します。
パラメータ 必須 説明 例 [宛先データベース] はい アカウントを作成するデータベースを指定します。 adminに設定すると特権アカウントが作成され、その他のデータベースを指定すると一般アカウントが作成されます。admin[データベースアカウント] はい ユーザー名を指定します。使用可能な文字は、英字、数字、および ! # $ % ^ & * ( ) _ + - =です。dbuser01[パスワード] はい ログインパスワードを指定します。8~32文字で、英字 (大文字と小文字を区別)、数字、特殊文字 ( ! # $ % ^ & * ( ) _ + - =) のうち少なくとも3種類を含める必要があります。MyP@ssw0rd[パスワードの確認] はい パスワードを再入力して確認します。 
-
アカウントに権限を付与します。利用可能なロールとその権限の説明については、「ロール権限」をご参照ください。
-
[OK] をクリックします。
DMS は設定内容からSQLステートメントを生成します。セキュリティコラボレーションモードでは、セキュリティルールによりこれらのステートメントが失敗する場合があります。その場合は、画面の指示に従うか、DBA または DMS 管理者にお問い合わせください。
アカウントの編集または削除
-
DMS コンソール V5.0 にログインします。
-
左側のインスタンスリストで、インスタンスを右クリックし、[データベースアカウント] を選択します。
-
[データベースアカウント] ページで、管理するアカウントを探します。
-
[操作] 列で、[編集] または [削除] をクリックします。
CLIの使用
DMS 経由でインスタンスに接続します。接続方法はインスタンスのアーキテクチャによって異なります。
接続後、mongo シェルを使用してアカウントを管理します。
-
アカウントの作成: 「データベースアカウントの作成」をご参照ください。
-
アカウントのクエリ: 「データベースアカウントのクエリ」をご参照ください。
ロール権限
次の表は、データベースアカウントに権限を付与する際に使用できる MongoDB の組み込みロールの一覧です。完全な仕様については、MongoDB ドキュメントをご参照ください。
権限は2つのレベルで適用されます。
-
データベースレベルのロール (一般操作、管理者アクション):特定のデータベースに適用されます。
-
インスタンスレベルおよびクラスタロール:すべてのデータベースまたはクラスタ全体に適用されます。
| ロールタイプ | ロール | 権限 |
|---|---|---|
| 一般操作ロール | read |
データベース内のデータをクエリします。 |
readWrite |
データベース内のデータの挿入、削除、更新、およびクエリを実行します。 | |
| 管理者アクションロール | dbAdmin |
データベース内のデータを管理しますが、データの読み取りや書き込みは行いません。 |
userAdmin |
データベースのユーザーを作成します。 | |
dbOwner |
データベースに対するすべての操作を実行します。 | |
| インスタンスレベルのロール | readAnyDatabase |
インスタンスのすべてのデータベース内のデータをクエリします。 |
readWriteAnyDatabase |
インスタンスのすべてのデータベース内のデータの挿入、削除、更新、およびクエリを実行します。 | |
userAdminAnyDatabase |
インスタンスのすべてのデータベースのユーザーを作成します。 | |
dbAdminAnyDatabase |
インスタンスのすべてのデータベース内のデータを管理します。 | |
| クラスタ管理者ロール | hostManager |
サーバーの監視と管理を行います。 |
clusterMonitor |
クラスタとレプリカセットをクエリします。 | |
clusterManager |
クラスタとレプリカセットを管理および監視します。 | |
clusterAdmin |
クラスタに対するすべての操作を実行します。 | |
| バックアップと復元のロール | backup |
バックアップ操作を実行します。 |
restore |
リストア操作を実行します。 | |
| スーパーロール | Root |
インスタンス内のすべてのリソースに対するすべての操作を実行します。 |
よくある質問
新しく作成したアカウントが [データベースアカウント] ページに表示されないのはなぜですか?
[データベースアカウント] ページには、現在選択されているデータベースのアカウントのみが表示されます。アカウントの作成時に[移行先データベース]として選択したデータベースに切り替えると、そのアカウントが表示されます。