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

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

最終更新日:Mar 28, 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 では、これらのロールはすべてのデータベースを含みます。これらのシステムデータベースに触れる操作の権限を付与する際は、この点にご注意ください。

シャードクラスターの O&M コマンド

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

flushRouterConfigcleanupOrphanedrunCommandOnShardsplitVectorclearJumboFlagmoveChunksplitChunk

よくある質問

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

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

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

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

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

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

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

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

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

カスタムアカウントで特定のコマンドを実行するには、必要なアクションのみを付与するカスタムロールを作成します。次の例では、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"]
    }
  ],
  roles: [
    { role: "read", db: "config" }
  ]
});

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