首页 > 解决方案 > 在 mongo 中运行 replSetGetStatus 命令的用户角色

问题描述

我正在尝试运行以下命令来获取我的副本集状态。但我收到以下错误:

db.adminCommand({replSetGetStatus: 1})
{
    "ok" : 0,
    "errmsg" : "not authorized on admin to execute command { replSetGetStatus: 1.0 }",
    "code" : 13
}

这是我在 db.system.users 集合中的用户文档

{
    "_id" : "admin.prodDb",
    "user" : "prodDb",
    "db" : "admin",
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : 10000,
            "salt" : "okdfd74YA3/mTiSad2+zjS4Ag==",
            "storedKey" : "aoCDvsdfh+asvbGajSinnUvXaqc08=",
            "serverKey" : "kdc6B3LgvrNE4gT1CsBEzEvDCadms="
        }
    },
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "XXXX"
        },
        {
            "role" : "readWrite",
            "db" : "XXXX"
        },
        {
            "role" : "readWrite",
            "db" : "XXXX"
        },
        {
            "role" : "readWrite",
            "db" : "XXXX"
        }
    ]
}

然后我尝试通过这样做来授予对管理数据库的读取权限 -

db.system.users.update({'user': 'prodDb'}, {$push: {"roles": {"role": "read", "db": "admin"}}})

我也将角色从 更改为readreadWrite但同样的问题仍然存在。我不想admin向该用户提供权限。我该怎么办。

标签: mongodbmongodb-query

解决方案



推荐阅读