如何在MongoDB v3.0.5中创建用户

时间:2015-08-19 07:22:16

标签: node.js mongodb

我需要在mongodb中为我的数据库创建一个用户,但似乎我无法让它工作。

我在Windows 7机器上安装了mongoDb v3.0.5。根据{{​​3}},我使用:

连接到我的mongo实例
mongo -u siteUserAdmin -p password

然后我通过以下方式创建了第一个用户:

use admin
db.createUser(
  {
    user: "siteUserAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

然后我在exampleDb上为我的nodejs应用程序创建了一个用户:

use admin
db.createUser(
  {
    user: "myUser",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "exampleDb" } ]
  }
)

最后在我的nodejs应用程序中,当我尝试使用此连接字符串连接到我的mongo实例时:

var connString = "mongodb://myUser:123456@127.0.0.1:27017/exampleDb";

发生Authentication failed错误:

{ name: 'MongoError',
  message: 'Authentication failed.',
  ok: 0,
  code: 18,
  errmsg: 'Authentication failed.'
}

1 个答案:

答案 0 :(得分:4)

当您"使用admin"时,您的新用户将在数据库" admin"中创建。

use admin
db.createUser(
  {
    user: "myUser",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "exampleDb" } ]
  }
)

所以你的连接字符串必须是:

var connString = "mongodb://myUser:123456@127.0.0.1:27017/admin";