【赵渝强老师】MongoDB的审计_MongoDB

点击这里查看视频“【赵渝强老师】MongoDB的审计”

在数据库安全的生命周期中,包括:保护、检测、响应及补救。检测的核心就是审计(Audit)。有些情况下,审计不仅仅用于检测不好的行为,也作为对整个数据库的行为进行监控而存在。审计能够告诉我们谁访问了什么、在什么地方、什么时间、采用了何种方式。有效的审计不仅仅意味着安全,也有助于数据库整体的完善。

审计功能可以用来记录用户对数据库的所有相关操作。这些记录可以让系统管理员在需要的时候分析数据库在什么时段发生了什么事情。审计功能是一个MongoDB企业版的功能,在社区版中不支持;并且我们可以针对mongod和mongos实例配置使用审计功能。

开启审计功能

审计日志可以写入到console命令行、syslog、JSON文件或者BSON文件中。

使用参数--auditDestination配置MongoDB的审计,常见的情况是可以把审计信息输出到console和文件中,如下:

mongod --dbpath /data/db1 --auditDestination console

mongod --dbpath /data/db1 --auditDestination file --auditFormat JSON --auditPath /data/db1/auditLog.json


也可以输出到syslog和BSON文件中,如下:

mongod --dbpath /data/db1 --auditDestination syslog

mongod --dbpath /data/db1 --auditDestination file --auditFormat BSON --auditPath /data/db1/auditLog.bson


过滤审计记录

例如下面使用--auditFilter进行过滤,是审计“createCollection”的操作

mongod --dbpath /data/db1 --auditDestination file  --auditFormat JSON --auditPath /data/db1/auditLog.json --auditFilter '{ atype: "createCollection"}'