我需要一些帮助来设置NodeJS应用程序以使用凭据与MongoDB连接。
我对在admin
数据库上创建用户感到困惑,或者我将在数据库上存储用户,然后从我的应用程序连接到它。
因此,假设我在localhost
端口27017
上运行了此MongoDB服务,我的数据库称为myAmazingApp
。我想在这个现在空的数据库上创建一个具有读/写权限的用户,并设置用户userApp
和密码passwordApp
。
我在NodeJS上使用Mongoose
。
我的问题包括我必须在哪里以及如何在MongoDB上创建此用户/角色/任何对象。
顺便说一句,现在这是我的连接字符串
mongodb://userApp:passwordApp@localhost:27017/myAmazingApp
,我正在与mongoose.connect
联系。
它给了我身份验证失败
答案 0 :(得分:0)
user@ubuntu:~$ mongo
并切换到管理数据库
> use admin
> db.createUser(
{
user: "adminUser",
pwd: "adminPwd",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
security:
authorization: "disabled"
将其更改为
security:
authorization: "enabled"
user@ubuntu:~$ sudo service mongodb restart
或
user@ubuntu:~$ sudo service mongod restart
user@ubuntu:~$ mongo admin
> db.auth("adminUser", "adminPwd")
1
> use myAmazingApp
> db.createUser(
{
user: "userApp",
pwd: "passwordApp",
roles: [ { role: "readWrite", db: "myAmazingApp" } ]
}
)
mongoose.connect('mongodb://userApp:passwordApp@localhost:27017/myAmazingApp');
或
mongoose.connect('mongodb://localhost:27017/myAmazingApp', {useNewUrlParser: true, user: "userApp", pass: "user:passwordApp"});