如何在Nodejs应用程序中首次创建mongodb用户

时间:2016-10-25 14:11:55

标签: node.js mongodb authentication

我在本地系统中使用带有mongoose的MongoDB,其中mongodbURL没有用户名和密码。因此,当我使用语法

运行它时,第一次创建数据库
 mongodb://localhost:27012/database

但是现在我想为数据库使用用户名和密码,因此,我使用了给定的语法

   mongodb://username:password@localhost:27012/database

但是我现在没有自动创建用户并且脚本给我一个身份验证失败错误

我该如何第一次创建用户?

2 个答案:

答案 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/

希望有所帮助:)