私はmongoDBにいくつかの権利の問題があり、認証方法を使用してDB管理者を作成しましたが、これは機能しました。
「userAdminAnyDatabase」ロールで作成した管理者アカウントを使用して、警告なしに離れたサーバーから自分の DB に接続できます。しかし、別の DB を使用する (myDB を使用する) と、db.runCommand を実行できません。
ここに私が得るものがあります:
> db.runCommand({createIndexes: "C_Cache", indexes: [{key: {tags: 1}, name: "tags_1"}]})
{
"ok" : 0,
"errmsg" : "not authorized on myDB to execute command { createIndexes: \"C_Cache\", indexes: [ { key: { tags: 1.0 }, name: \"tags_1\" } ] }",
"code" : 13
}
構成ファイルで「auth」をコメントすると、すべてが完全に機能します。しかし、これは私が望むものではありません。その認証方法が必要です。
編集:
「userAdminAnyDatabase」の意味を誤解しているだけです。これは、他の DB を変更する権限を与えません。これには、スーパーユーザーの役割に合わせて「root」の役割が必要なようです