用户身份验证不适用于mongodb 3.6.5

时间:2019-01-10 08:19:55

标签: mongodb authentication

我已经在AWS ec2服务器上安装了mongodb 3.6.5,并在.conf文件中进行了以下设置

net:
  port: 27017
  bindIp: serverIP

security:
  authorization: 'enabled'

然后在admin db中使用以下命令创建用户并重新启动mongodb

db.createUser(
  {
    user: "mydbuser",
    pwd: "mydbpass",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

现在,当我尝试使用以下命令从控制台访问数据库时,如果不允许我进行操作,并给我带来身份验证错误。

mongo serverIP --port 27017 -u "mydbuser" -p "mydbpass" --authenticationDatabase "admin"

有人可以帮我解决一下问题吗

出现以下错误

MongoDB server version: 3.6.5
2019-01-11T08:46:50.245+0000 E QUERY    [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20
@(auth):6:1
@(auth):1:2
exception: login failed

1 个答案:

答案 0 :(得分:0)

您遵循的方法是正确的,但是在接受凭据作为字符串时,mongodb会有一些变化。您可能需要将用户名和密码用单引号引起来,而不是用双引号引起来,如下所示。

mongo serverIP --port 27017 -u 'mydbuser' -p 'mydbpass' --authenticationDatabase 'admin'

如果您的用户名/密码中没有特殊字符,则双引号将起作用。

有关mongo的更多详细信息,请点击此处https://docs.mongodb.com/manual/reference/program/mongo/