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

ApsaraDB for MongoDB:インスタンス作成時に作成されるルートアカウントの権限

最終更新日:Jul 04, 2026

ApsaraDB for MongoDB インスタンスを作成すると、システムは admin データベースにルートアカウントを自動的に作成します。このルートアカウントに付与される権限は、インスタンスの MongoDB バージョンによって異なります。

インスタンスのバージョン ルートアカウントに割り当てられるロール
MongoDB 4.2 以前 組み込みの root ロール
MongoDB 4.4 以降 alibabaCloudAdmin ロール (Alibaba Cloud カスタムロール)

ルートアカウントで実行できる操作を確認するには、次のコマンドを実行します。

db.getSiblingDB("admin").runCommand({usersInfo: "root"});
説明

usersInfo コマンドの詳細については、「usersInfo」をご参照ください。

特定のロールの権限を調べるには、rolesInfo コマンドを使用します。組み込みの root ロールについては、「root」をご参照ください。

重要

データセキュリティのため、日常的なデータベース操作にルートアカウントを使用することは避けてください。代わりに、ワークロードに必要な権限のみを持つ専用のデータベースアカウントを作成してください。詳細については、「ApsaraDB for MongoDB インスタンスのアカウントを作成する」をご参照ください。

alibabaCloudAdmin ロールの権限

alibabaCloudAdmin ロールは、ApsaraDB for MongoDB のカスタムロールです。標準の root ロールとは異なるため、これらの違いを理解しておくと、予期しない権限エラーの回避に役立ちます。

含まれる組み込みロール

alibabaCloudAdmin ロールには、以下の MongoDB 組み込みロールが含まれています。

組み込みロール 機能
readWriteAnyDatabase 任意のデータベースにあるコレクションの読み書き
userAdminAnyDatabase 任意のデータベースのアカウント管理
dbAdminAnyDatabase 任意のデータベースの統計クエリとインデックス管理
clusterMonitor 監視ツールへの読み取り専用アクセス
backup バックアップ操作
enableSharding データベースのシャーディング有効化
restore バックアップからの復元

admin データベースの制限

alibabaCloudAdmin ロールでは、admin データベースに対して 読み取り専用 アクセスのみ可能です。admin データベースへの書き込みや、admin データベースに対する書き込み権限を持つアカウントの作成はできません。

重要

一部のシナリオでは、admin データベースにデータを書き込むと、深刻なパフォーマンスジッターが発生する可能性があります。そのため、admin データベースをスコープとする readWritedbAdmin、または dbOwner 権限を持つユーザーやロールを作成することはできません。

標準的な MongoDB の動作との違い

ApsaraDB for MongoDB の xxxAnyDatabase 権限 (例: readWriteAnyDatabase) は、configlocaladmin データベースを 対象としません。標準的な MongoDB では、これらのロールはすべてのデータベースを含みます。これらのシステムデータベースに影響する操作の権限を付与する際は、この違いにご注意ください。

シャードクラスターの運用保守コマンド

シャードクラスターインスタンスの場合、alibabaCloudAdmin を持つルートアカウントは、以下の運用保守コマンドを直接実行できます。

flushRouterConfigcleanupOrphanedrunCommandOnShardsplitVectorclearJumboFlagmoveChunksplitChunk

よくある質問

clusterAdminclusterManager、または hostManager 権限を持つユーザーやロールを作成できないのはなぜですか?

alibabaCloudAdmin ロールにはこれらのクラスターレベルの権限が含まれていないため、カスタムユーザーやロールにこれらの権限を付与することはできません。カスタムアカウントの権限は、ルートアカウント自身の権限スコープを超えることはできません。

admin データベースで readWritedbAdmin、または dbOwner 権限を持つユーザーやロールを作成できないのはなぜですか?

alibabaCloudAdmin ロールは admin データベースに対する読み取り権限しか持たないため、そこに書き込みアクセス権を持つアカウントを作成することはできません。admin 以外のデータベースで、これらの権限を持つユーザーやロールを作成してください。

すべてのカスタムコレクションへの読み書きアクセス権を持つアカウントを作成するにはどうすればよいですか?

admin データベースでアカウントを作成し、readWriteAnyDatabase ロールを割り当てます。

db.getSiblingDB("admin").createUser({
  user: "myName",
  pwd: "myPassword",
  roles: ["readWriteAnyDatabase"]
})

シャードクラスターの運用保守コマンドを実行する必要がありますが、clusterManager ロールを作成できません。どうすればよいですか?

ルートアカウントは、「シャードクラスターの運用保守コマンド」セクションに記載されている運用保守コマンドをすでにサポートしています。これらの操作にはルートアカウントを直接使用してください。

カスタムアカウントで特定のコマンドを実行するには、必要なアクションのみを付与するカスタムロールを作成してください。次の例では、splitVector を実行できるユーザーを作成します (シャードクラスターインスタンスでのみサポートされています)。

db.runCommand({
  createRole: 'myRole',
  privileges: [{
    resource: { db: "", collection: "" },
    actions: ['splitVector']
  }],
  roles: ['readAnyDatabase']
})

db.getSiblingDB("admin").createUser({
  user: "myUser",
  pwd: "myPassword",
  roles: ["myRole"]
})

admin データベースで変更ストリームを使用すると、新しいアカウントで権限エラーが発生するのはなぜですか?

ApsaraDB for MongoDB の xxxAnyDatabase ロールは (標準的な MongoDB とは異なり) admin データベースを対象としません。アカウントに他のデータベースに対する readAnyDatabase を付与し、その後、admin データベースに対する read を明示的に付与してください。

db.adminCommand({
  grantRolesToUser: "myUser",
  roles: [{ role: "read", db: "admin" }]
})

flink-sql-connector-mongodb-cdc の例で作成したロールに権限が表示されないのはなぜですか?

listDatabases アクションは、データベースリソースやコレクションリソースではなく、クラスターリソースに割り当てる必要があります。次のコマンドを使用して、ロールを正しく作成してください。

db.createRole({
  role: "flinkrole",
  privileges: [
    {
      resource: { db: "", collection: "" },
      actions: [
        "splitVector",
        "listCollections",
        "collStats",
        "find",
        "changeStream"
      ]
    },
    {
      resource: { cluster: true },
      actions: ["listDatabases"]
    }
  ]
});

ロールとユーザーを作成した後もエラーが発生する場合は、チケットを送信して Alibaba Cloud のテクニカルサポートにお問い合わせください。