mongodb - 在 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"}}})
我也将角色从 更改为read
,readWrite
但同样的问题仍然存在。我不想admin
向该用户提供权限。我该怎么办。
解决方案
用户应该有clusterManager
角色:https ://docs.mongodb.com/manual/reference/built-in-roles/#clusterManager
推荐阅读
- android - 如何控制EditText?
- kotlin - 写入同一个文件的协程
- inheritance - 在 Rails 5 中,如何从我定义的模块继承?
- dynamic-programming - 这个最优子结构方程正确吗?
- python - python - 删除与字符串中的数字对应的多个字符
- sql-server - 生成每周图表的 DAX 度量
- python-3.x - 有没有办法减少python中o函数的执行时间?
- python - 索引警告python
- bash - ls 绝对路径的 Bash 函数(但行为类似于 ls)
- javascript - 在 ANTLR RuleContext 中获取标记的替代名称