我目前正在使用 MongoDB 来记录应用程序日志,虽然我对性能和能够将任意结构化数据转储到日志记录中都非常满意,但我对存储后的日志记录的可变性感到困扰。
在传统数据库中,我会为我的日志表构建授权,使应用程序用户具有 INSERT 和 SELECT 权限,但没有 UPDATE 或 DELETE。同样,在 CouchDB 中,我可以编写一个更新验证器函数来拒绝所有修改现有文档的尝试。
但是,我一直无法找到一种方法来限制对 MongoDB 数据库或集合的操作超出MongoDB wiki 上的安全主题中记录的三种访问级别(无访问、只读、“上帝模式”) 。
是否有其他人将 MongoDB 作为文档存储部署在需要文档的不变性(或至少更改跟踪)的环境中?您使用了哪些技巧或技术来确保编写不佳或恶意的应用程序代码无法修改或破坏现有的日志记录?我是否需要将我的 MongoDB 日志记录在强制执行只写策略的服务层中,或者我可以使用配置、查询黑客和复制的某种组合来确保维护一致的、可审计的记录?