所以我们遇到了一个有趣的问题 . 我们希望在MongoDB层添加身份验证以提高安全性 . 但我们没有得到有利的结果 .
Pre-Setup
-
以root身份使用mongo shell(针对admin表)
-
切换到所需的数据库(applicationdb)
-
执行db.createUser()
-
验证用户已成功创建
{“_ id”:“applicationdb.appuser”,“user”:“appuser”,“db”:“applicationdb”,“roles”:[{“role”:“readWrite”,“db”:“applicationdb”}] }
Scenario 1:
-
更改mongodb.conf,auth = true
-
重启Mongod服务
-
使用以下方式连接猫鼬:
mongoose.connect( '的mongodb:// APPUSER:password@xx.xxx.xxx.xxx:27017 / applicationdb');
- 没有收到连接错误,所以尝试通过Mongoose执行GET导致操作超时而没有任何错误(至少我能找到)
Scenario 2:
-
更改mongodb.conf,auth = false
-
重启Mongod服务
-
使用以下方式连接猫鼬:
mongoose.connect( '的mongodb://xx.xxx.xxx.xxx:27017 / applicationdb');
- 没有收到连接错误,因此尝试通过Mongoose执行GET并成功返回文档
为什么我们在MongoDB中使用身份验证时会得到此超时并且从未完成请求?
任何帮助都会很棒,我们在这一点上不知所措!
1 回答
您需要使用
--auth
选项重新启动mongo服务,请参阅here如果不起作用,请执行以下操作:尝试使用
keepAlive
set设置mongoose中的服务器选项 . 见here和here .