我在我的管理数据库中创建了这两个用户:
db.auth('admin','password')
1
> db.getUsers()
[
{
"_id" : "admin.siteUserAdmin",
"user" : "siteUserAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
},
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
]
我从我的本地主机上得到了正确的验证,但是当我尝试使用外部客户端连接到我的数据库时,我收到了这个错误:
Failed to authenticate admin@admin with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document
我该如何解决?
最佳答案
如前所述here : MongoDB 3 身份验证机制已从 MongoDB 质询和响应 (MONGODB-CR) 更改为 质询和响应机制 (SCRAM- SHA-1).
您必须删除创建的用户,然后将 admin.system.version.authSchema 更改为 3 而不是 5。然后重新创建您的用户应该可以解决问题:
var schema = db.system.version.findOne({"_id" : "authSchema"})
schema.currentVersion = 3
db.system.version.save(schema)
This链接也可能有帮助。
关于MongoDB AuthenticationFailed 机制 MONGODB-CR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29983868/