【发布时间】:2012-11-07 18:58:08
【问题描述】:
我对 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
令我惊讶的是,我现在能够访问我使用 now 身份验证创建的数据库...
请告诉我我应该做些不同的事情。
【问题讨论】:
-
您关闭了身份验证并担心您可以在没有身份验证的情况下访问数据?身份验证控制谁可以访问它,它不应该加密数据。它正在做你告诉它做的事情。
-
正如其他 cmets 中所述,身份验证通过
mongod服务控制访问,但不会加密或更改磁盘上的数据。这与其他软件一致..例如,在 Windows 中设置密码也不会加密您的数据。有加密敏感数据的解决方案;见Securing Data in MongoDB with Gazzang。
标签: javascript java mongodb security database