【发布时间】:2016-11-10 06:12:39
【问题描述】:
所以我们遇到了一个有趣的问题。我们想在 MongoDB 层添加身份验证以提高安全性。但是我们没有得到一个好的结果。
预设置
- 以 root 身份使用 mongo shell(针对管理表)
- 切换到所需的数据库 (applicationdb)
- 执行 db.createUser()
-
验证用户创建成功
{ "_id" : "applicationdb.appuser", “用户”:“应用用户”, “数据库”:“应用程序数据库”, “角色”:[ { “角色”:“读写”, “数据库”:“应用程序数据库” } ] }
场景 1:
- 更改 mongodb.conf,auth=true
- 重启 Mongod 服务
-
使用以下方式连接猫鼬:
mongoose.connect('mongodb://appuser:password@xx.xxx.xxx.xxx:27017/applicationdb');
没有收到连接错误,因此尝试通过 Mongoose 执行 GET 会导致操作超时而没有任何错误(至少我能找到)
场景 2:
- 更改 mongodb.conf,auth=false
- 重启 Mongod 服务
-
使用以下方式连接猫鼬:
mongoose.connect('mongodb://xx.xxx.xxx.xxx:27017/applicationdb');
没有收到连接错误,所以尝试通过 Mongoose 执行 GET 并成功返回文档
为什么在 MongoDB 中使用身份验证时,我们会收到此超时并且从未完成请求?
任何帮助都会很棒,我们在这方面不知所措!
【问题讨论】:
-
能否添加猫鼬连接代码,设置的选项。
-
@virattara,使用的代码在每个场景的第3步下。
标签: node.js mongodb authentication mongoose