我根据doc:
创建了一个管理用户use admin
db.createUser(
{
user: "siteUserAdmin2",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
然后我在Mongodb控制台中创建一个用户:
use x
db.createUser(
{
user: "xuser",
pwd: "xuser123",
roles: ["readWrite"]
}
)
我可以在控制台中登录管理员用户,如下所示:
mongo --port 27017 -u siteUserAdmin -p password --authenticationDatabase admin
但是如何登录用户帐户?
我尝试了用户名和密码,它不会让我通过。我也不知道在--authenticationDatabase
放什么。我也无法使用Mongoose登录。
感谢任何帮助,谢谢。
答案 0 :(得分:3)
您可以通过指定数据库来使用xuser
进行日志记录。我创建了您拥有的相同用户并尝试从控制台登录,它运行正常。
mongo --username xuser --pasword xuser123 --authenticationDatabase x
登录后,我还运行connectionStatus
命令查看当前用户:
db.runCommand({connectionStatus: 1});
//output
{
"authInfo" : {
"authenticatedUsers" : [
{
"user" : "xuser",
"db" : "x"
}
]
},
"ok" : 1
}
答案 1 :(得分:3)
当您使用mongoose或其他驱动程序等用户凭据进行连接时,通常首选使用connection string format.
mongoose.connect('mongodb://siteuserAdmin:password@localhost/admin')
当然,如上所述连接到身份验证数据库
如果没有为--authenticationDatabase指定值,mongo将使用连接字符串中指定的数据库。
对于需要执行管理选项的连接,情况就是如此。否则,可以提供凭证,并将连接发送到该帐户具有。
权限的相应数据库