我有一个本地 Mongo 数据库,为此我创建了用户并通过我的代码进行身份验证。但只有当 mongo 实例使用“--auth”参数运行时,身份验证才有效。如果 mongod.exe 在没有“--auth”参数的情况下运行,则任何 MongoDB GUI 编辑器都可以访问数据。有没有办法通过阻止运行没有“--auth”参数的 mongod.exe 实例来防止对我的数据库进行未经授权的访问?
我有一个本地 Mongo 数据库,为此我创建了用户并通过我的代码进行身份验证。但只有当 mongo 实例使用“--auth”参数运行时,身份验证才有效。如果 mongod.exe 在没有“--auth”参数的情况下运行,则任何 MongoDB GUI 编辑器都可以访问数据。有没有办法通过阻止运行没有“--auth”参数的 mongod.exe 实例来防止对我的数据库进行未经授权的访问?
您需要保护管理主机环境,以防止有人获得重新配置您的 MongoDB 服务或直接访问数据文件或备份的权限。任何获得管理员访问权限的人都可以完全控制环境和服务,因此应该有多层保护和监控。
您可以使用适当的安全措施(如防火墙、入侵检测系统、强密码)以及在设置用户和服务帐户时遵循最小权限原则来降低管理员访问或妥协的风险。
默认情况下,MongoDB 的数据文件未加密,但您可以使用文件系统加密或MongoDB Enterprise 3.2+ 中的加密存储引擎对静态文件进行加密。但是,您仍然必须正确保护对您的环境的管理员访问权限,否则流氓管理员也将有权访问要解密的密钥。
对于一般安全措施,我建议查看MongoDB 安全检查表。
我还强烈建议从 3.0.3(2015 年 5 月发布)升级到 3.0.15 最终版本(2017 年 5 月),并计划升级到 MongoDB 服务器的现代(非终止生命)版本。在连续的服务器版本中,有许多安全性、稳定性和性能改进。