MongoDB 使用用户帐户登录
MongoDB login with user account
我根据文档创建了一个管理用户:
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 登录。
感谢任何帮助,谢谢。
您可以通过指定数据库使用xuser
登录。我创建了与您相同的用户,并尝试从控制台登录,一切正常。
mongo --username xuser --pasword xuser123 --authenticationDatabase x
登录后,我还运行 connectionStatus
命令查看当前用户:
db.runCommand({connectionStatus: 1});
//output
{
"authInfo" : {
"authenticatedUsers" : [
{
"user" : "xuser",
"db" : "x"
}
]
},
"ok" : 1
}
当您使用 mongoose 或其他驱动程序的用户凭据进行连接时,通常首选使用 connection string format.
mongoose.connect('mongodb://siteuserAdmin:password@localhost/admin')
当然还要像前面提到的那样连接到身份验证数据库
If you do not specify a value for --authenticationDatabase, mongo uses the database specified in the connection string.
需要执行管理选项的连接就是这种情况。否则,可以提供凭据并连接到该帐户具有权限的适当数据库。
我根据文档创建了一个管理用户:
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 登录。
感谢任何帮助,谢谢。
您可以通过指定数据库使用xuser
登录。我创建了与您相同的用户,并尝试从控制台登录,一切正常。
mongo --username xuser --pasword xuser123 --authenticationDatabase x
登录后,我还运行 connectionStatus
命令查看当前用户:
db.runCommand({connectionStatus: 1});
//output
{
"authInfo" : {
"authenticatedUsers" : [
{
"user" : "xuser",
"db" : "x"
}
]
},
"ok" : 1
}
当您使用 mongoose 或其他驱动程序的用户凭据进行连接时,通常首选使用 connection string format.
mongoose.connect('mongodb://siteuserAdmin:password@localhost/admin')
当然还要像前面提到的那样连接到身份验证数据库
If you do not specify a value for --authenticationDatabase, mongo uses the database specified in the connection string.
需要执行管理选项的连接就是这种情况。否则,可以提供凭据并连接到该帐户具有权限的适当数据库。