Jis*_*son 5 mongodb mongo-shell
我刚刚为mongodb实现了auth,在数据库“ admin”中有一个用户“ admin”,在数据库“ mydb”中有一个用户“ appadmin”,一切正常。以下是我的数据库身份验证设置:
use admin
db.auth(‘’, ‘’)
db.getUsers()
[
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "clusterMonitor",
"db" : "admin"
}
]
}
]
use mydb
db.auth()
db.getUsers()
{
"_id" : "mydb.appadmin",
"user" : "mydb",
"db" : "mydb",
"roles" : [
{
"role" : "readWrite",
"db" : "mydb"
},
{
"role" : "userAdmin",
"db" : "mydb"
}
]
}
].
Run Code Online (Sandbox Code Playgroud)
如果我运行以下命令,
mongostat --username=admin --password=mypassword --authenticationDatabase=admin
insert query update delete getmore command flushes mapped vsize res faults qr|qw ar|aw netIn netOut conn time
*0 *0 *0 *0 0 1|0 0 240.0M 678.0M 91.0M 0 0|0 0|0 79b 10k 1 11:49:18
*0 *0 *0 *0 0 1|0 0 240.0M 678.0M 91.0M 0 0|0 0|0 79b 10k 1 11:49:19
*0 *0 *0 *0 0 1|0 0 240.0M 678.0M 91.0M 0 0|0 0|0 79b 10k 1 11:49:20
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时
* mongostat --username=appadmin --password=mypassword --authenticationDatabase=mydb
Failed: not authorized on admin to execute command { serverStatus: 1, recordStats: 0 },
Run Code Online (Sandbox Code Playgroud)
因此,我尝试在mydb中添加角色“ clusterMonitor”。
db.updateUser(“appadmin”, {roles: [{role: "readWrite", db: “mydb”}, {role: "userAdmin", db: “mydb”}, {role: "clusterMonitor", db: “mydb”}]})
E QUERY Error: Updating user failed: No role named clusterMonitor@mydb.
Run Code Online (Sandbox Code Playgroud)
在启用了身份验证的mongoldb中执行mongostat的最佳方法是什么?请帮助我解决问题或建议最佳身份验证设置。注意:我的mongodb版本3.0.6
终于我找到了解决方案,我向管理数据库添加了更多角色,
use admin
db.getUsers()
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "readWriteAnyDatabase",
"db" : "admin"
},
{
"role" : "dbAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "clusterAdmin",
"db" : "admin"
},
{
"role" : "clusterMonitor",
"db" : "admin"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
并运行mongostat --username = admin --password = mypassword --authenticationDatabase = admin,解决问题
| 归档时间: |
|
| 查看次数: |
4081 次 |
| 最近记录: |