我在本地系统中使用带有mongoose的MongoDB,其中mongodbURL没有用户名和密码。因此,当我使用语法
运行它时,第一次创建数据库 mongodb://localhost:27012/database
但是现在我想为数据库使用用户名和密码,因此,我使用了给定的语法
mongodb://username:password@localhost:27012/database
但是我现在没有自动创建用户并且脚本给我一个身份验证失败错误
我该如何第一次创建用户?
答案 0 :(得分:2)
首先,使用mongo shell连接到您的数据库,无需身份验证。运行以下命令以创建用户。
db.createUser({
user: "username",
pwd: "password",
roles: [
{ role: "readWrite", db: "database_name"}
]
})
您可能还想创建一个管理员,以便以后在启用身份验证时创建更多用户。
db.createUser({
user: "username",
pwd: "password",
roles: [
"dbAdminAnyDatabase"
]
})
这些用户将在名为" admin"。
的数据库中创建在此处查看所有MongoDB内置角色:https://docs.mongodb.com/v3.2/reference/built-in-roles/
编辑你的mongod配置。如果您使用的是YAML,请添加以下行:
security:
authorization: 'enabled'
以下是mongod配置选项:https://docs.mongodb.com/v3.2/reference/configuration-options/
如果您使用旧格式的config set auth为true
auth=true
https://docs.mongodb.com/v2.4/reference/configuration-options/
重新启动mongod并加载配置
mongod --config ./mongodb.conf
现在您应该可以使用mongodb:// username:password @ localhost:27012 / database
进行连接答案 1 :(得分:0)
您必须连接到数据库并启用身份验证。
为此,您需要创建用户并设置一些权限。
您可以参考此文档: https://docs.mongodb.com/v3.2/tutorial/enable-authentication/
希望有所帮助:)