我需要在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.'
}
答案 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";