MongoDb保护数据库文件不受匿名访问

MongoDb保护数据库文件不受匿名访问,mongodb,Mongodb,我用这个描述创建了一个mongodb数据库 创建数据库 已创建管理员用户 使用--auth参数运行mongodb 那很好 但是我如何才能真正保护数据库文件不被匿名访问呢 当有人获取我的数据库文件并运行mongodb而不使用--auth参数时,他可以访问整个数据库 有没有办法保护数据库文件本身,使我不能在没有--auth的情况下运行mongodb 致意 Tobias加密数据文件只是整体安全策略的一部分-如果有人有权从您的计算机或备份中复制任何文件,他们可能还能够从同一来源获取您的加密密钥。Mon

我用这个描述创建了一个mongodb数据库

  • 创建数据库
  • 已创建管理员用户
  • 使用--auth参数运行mongodb
  • 那很好

    但是我如何才能真正保护数据库文件不被匿名访问呢

    当有人获取我的数据库文件并运行mongodb而不使用
    --auth
    参数时,他可以访问整个数据库

    有没有办法保护数据库文件本身,使我不能在没有
    --auth
    的情况下运行mongodb

    致意


    Tobias

    加密数据文件只是整体安全策略的一部分-如果有人有权从您的计算机或备份中复制任何文件,他们可能还能够从同一来源获取您的加密密钥。MongoDB手册提供了一个通用的最佳实践,包括访问控制、网络公开、审计和高级检查表

    如果你想加密MongoDB数据文件,你需要寻找一个“静态加密”的解决方案

    与MongoDB 2.6一样,没有内置的数据加密支持,但有许多开源和商业解决方案可用

    静态加密的广泛类别是应用程序级加密或存储加密(可以单独使用,也可以结合使用,具体取决于您的需求)。加密将增加磁盘I/O的一些性能开销,因此您应该在测试和评估中考虑这一点,以满足您的要求。 静态加密解决方案的几个示例包括:


    有关支持选项的更多信息,请阅读MongoDB安全文档的一节。

    感谢您的快速回答!我会阅读这一部分,也会看一看加密链接。好的,但是如果我有一个完整的集合要保护(f.e.合同或类似的东西),没有真正好的方法来保护数据库免受未经授权的访问吗?因此,最好的方法是确保没有人可以访问数据库文件和mongod.exe。我只是在一个仍然很小的私人项目中使用它,但是有一个像keepass这样的passwort保护的文件会很好。如果你有如此敏感的数据,通常阻止物理访问你的数据文件的方法(对数据中心的访问控制,四眼原则)和基于主机的访问(强化、蛮力预防、MAC和HIDS/NIDS)这还不够,你应该考虑一个内部解决方案。我正在开发的项目计划由私人使用,他们将在那里的家用电脑上安装这个程序。那里没有服务器。所以我认为这不是一个大问题。如果有人真的可以访问那里的电脑,他们可能会遇到比这个更大的问题;)那么标准的预防措施就足够了。磁盘加密,如果绝对必要。在OSX上,如果您不想加密整个用户目录,您可以使用加密的稀疏包,并将
    dbpath
    指向它,这是穷人的解决方案。已经提到了Linux和Windows的解决方案。我的项目是用c语言编写的,所以主要的系统是Windows。如果最终用户确实需要保护,他/她可以创建Bitlocker驱动器并运行其中的所有内容。这是否也会降低性能?你已经试过了吗?在Windows上运行MongoDB是一个非常糟糕的主意™ 性能方面。NTFS和REF并不是性能良好的文件系统。当它们被加密时更是如此。但是对于一个客户,你不应该注意到有多大的不同。然而,这并不是我的第一手经验,因为我个人并不使用Windows