MongoDB Enterprise 包括针对mongod 和mongos 实例的 Atlas 审核功能。该功能允许管理员和用户追踪具有多个用户和应用程序的部署的系统活动。
启用和配置审核输出
审核工具可以将审核事件写入控制台、系统日志、JSON 文件或 BSON 文件。要在 MongoDB Enterprise 中启用审核,请使用 --auditDestination 设置审核输出目标位置。有关详细信息,请参阅配置审核。
有关审核日志信息的信息,请参阅系统事件审核消息。
审核事件和筛选器
启用后,审核系统可记录以下操作[1]:
架构 (DDL)、
副本集和分片集群、
身份验证和授权,以及
增删改查操作(要求
auditAuthorizationSuccess设置为true)。
注意
从 MongoDB 5.0 开始,从节点不为复制变更记录 DDL 审核时间。对于修改本地数据库和 system.profile 集合的 DDL 操作,仍会记录 DDL 审核事件。
使用过滤器来限制捕获的事件。有关详细信息,请参阅配置Atlas 审核过滤器。
| [1] | 已中止事务中的操作仍会生成审核事件。但是,没有审核事件表明事务已中止。 |
审核保证
Atlas 审核系统会将每个 Atlas 审核事件 [2] 写入内存缓冲区。MongoDB 会定期将此缓冲区写入磁盘。
单个连接中的事件是有序的:如果 MongoDB 将一个事件写入磁盘,则已将该连接的所有先前事件写入磁盘。
如果 Atlas 审核事件对应于影响数据库持久性状态的操作(例如对数据的修改),则 MongoDB 会在写入该条目的 日志 之前 将 Atlas 审核事件写入磁盘。在向日志添加操作之前,MongoDB 会在该连接上写入所有 Atlas 审核事件,包括该操作的条目。
警告
如果服务器在将事件提交到审核日志之前终止,MongoDB 可能会丢失事件。在 MongoDB 提交至审核日志之前,客户端可能会收到事件的确认。例如,在审核聚合操作时,服务器可能会在返回结果后但在审核日志刷新之前终止。
此外,如果服务器无法将内容写入 audit destination 处的 Atlas 审核日志,则服务器将终止。
| [2] | 审核配置可包括筛选器,以限制要审核的事件。 |