MongoDB Auth,可以在 shell 中进行身份验证,但不能通过命令行进行身份验证

MongoDB Auth,可以在 shell 中进行身份验证,但不能通过命令行进行身份验证

我有一个名为 Discussions 的应用程序连接到 MongoDB 数据库。我创建了一个用户

蒙戈壳:

> use discussions
switched to db discussions
> db.auth("discussions","XXXXXXXXX")
1
> show users
{
        "_id" : "discussions.discussions",
        "user" : "discussions",
        "db" : "discussions",
        "roles" : [
                {
                        "role" : "dbOwner",
                        "db" : "discussions"
                }
        ]
}

因此,这是为了确认我确实在数据库中有一个帐户,并且它是 dbOwner。根据文档,它具有 READ、WRITE 等权限。

配置文件已启用属性“auth = true”,自更改后服务已多次被退回。

然而,问题是当我尝试从 shell 外部连接到数据库时,总是出现错误:

mongo  discussions -u 'discussions' -p 'XXXXXXXXX'
MongoDB shell version: 2.6.3
connecting to: discussion
2014-08-05T01:00:39.026+0400 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed

我在 Stackoverflow 上看到过有关此问题的问题,它们都与用户名和密码周围的引号有关……但将单引号更改为双引号并没有产生更好的结果。

答案1

也许我错了,但正确的形式是这样的:

mongo --port 27017 -u manager -p 12345678 --authenticationDatabase admin

您可以在 mongo 文档中阅读有关此内容:

http://docs.mongodb.org/manual/tutorial/add-user-to-database/

答案2

删除所有符号即可解决该问题。看来,无论使用单引号还是双引号,都会导致输入的密码无效。

相关内容