MongoDB AuthenticationFailed 机制 MONGODB-CR

标签 mongodb

我在我的管理数据库中创建了这两个用户:

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/

相关文章:

javascript - E11000重复键错误集合: Inserting document in mongodb

java - 是 Spring Data Mongodb,我如何在不通过 ID 的情况下从另一个文档引用一个文档

mongodb - Mongo 查询通过时间参数按天获取 1 个文档

mongodb - 如何按超出范围的日期查询文档?

mongodb - 面向文档的数据库是否适合此用例?

c# - 评论的MongoDB文档设计(及其回复评论)

mongodb - 蒙戈克司机 : how to query based on ISOdate?

Node.Js 和 MongoDB Compass 连接错误

mongodb - 展开,但在每个结果行中保留原始数组

mongodb - 选择匹配mongodb中两个字段的concat值的记录