MongoBD:クエリは許可されていません

MongoBD がデータをクエリするときにエラーが発生します。

not authorized for query

最終的にユーザー権限の問題であることが判明しました

組み込みの役割:

  1. データベース ユーザー ロール: 読み取り、読み取り書き込み。
  2. データベース管理ロール: dbAdmin、dbOwner、userAdmin。
  3. クラスター管理ロール:clusterAdmin、clusterManager、clusterMonitor、hostManager。
  4. バックアップとリカバリの役割: バックアップ、復元。
  5. すべてのデータベース ロール: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. スーパーユーザーの役割: root

現在のユーザーを確認する

use admin;

db.auth('root', '123456')

db.getUsers();
[
    {
    
    
        "_id" : "admin.root",
        "userId" : UUID("d3703a16-3066-43de-8ed2-07aed8608281"),
        "user" : "root",
        "db" : "admin",
        "roles" : [
            {
    
    
                "role" : "userAdminAnyDatabase",
                "db" : "admin"
            }
        ],
        "mechanisms" : [
            "SCRAM-SHA-1",
            "SCRAM-SHA-256"
        ]
    }
]

彼の許可は次のとおりであることがわかりました。"role" : "userAdminAnyDatabase"

userAdminAnyDatabase: ロールとユーザーを割り当てる権限はありますが、表示する権限はなく、バックアップには使用できません。

したがって、新しいユーザーを追加し、データのクエリと変更の権限を付与する必要があります。

db.createUser({
    
    user:"admin",pwd:"123456",roles:[{
    
    role:"root",db:"admin"}]})

または、元のアカウントの権限を増やします

参考記事

おすすめ

転載: blog.csdn.net/mouday/article/details/135227522