我对 MongoDB 安全性的信心动摇了,我希望它能在我做错事的解释下恢复......
我已经像这样创建了 MongoDB 的 Windows 服务:
mongod --logpath "C:\mongoDB\logs" --logappend --dbpath "C:\mongoDB\data\db" --serviceName MongoDB --serviceDisplayName "Mongo DB" --port 27017 --auth --install
然后我创建了一个数据库并将管理用户添加到该数据库的 system.users 集合中。
然后我在该数据库中填充了一些随机信息到我创建的测试集合中。
到目前为止,一切都很好,只有我拥有管理员凭据才能访问数据库...
现在是重要的部分......
我删除了这样的服务:
mongod --remove --serviceName "MongoDB"
然后我重新创建了服务,但没有像这样的身份验证:
mongod --logpath "C:\mongoDB\logs" --logappend --dbpath "C:\mongoDB\data\db" --serviceName MongoDB --serviceDisplayName "Mongo DB" --port 27017 --noauth --install
令我惊讶的是,我现在可以访问我创建的数据库,现在需要身份验证...
请告诉我我应该做些不同的事情。
最佳答案
身份验证发生在守护程序级别,而不是数据库级别。数据本身未加密或以其他方式受访问控制。如果您在不需要凭据的情况下运行该服务,那么正如预期的那样,连接和使用它不需要凭据。
这通常不被认为是有问题的,就好像您可以访问服务器并可以修改守护进程一样,根据定义,您无论如何都可以访问数据文件。
关于javascript - MongoDB 安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276329/