获取审计配置
重要
自版本7.1已弃用:请使用auditConfig
集群参数代替。
定义
getAuditConfig
新版本中5.0.
getAuditConfig
是一个管理命令,用于从mongod
和mongos
服务器实例中检索审计配置。
兼容性
此命令在以下环境中部署可用
MongoDB Enterprise:基于订阅的自托管 MongoDB 版本
MongoDB Community:源代码可用的免费使用自托管 MongoDB 版本
重要
此命令在 MongoDB Atlas 集群中不受支持。有关所有命令的 Atlas 支持信息,请参阅 不受支持的命令。
语法
命令具有以下语法
db.adminCommand( { getAuditConfig: 1 } )
行为
审计必须启用才能使用getAuditConfig
.
未参与运行时审计配置的节点将返回其当前配置文件设置auditLog.filter
和setParameter.auditAuthorizationSuccess
。
参与运行时审计的节点从内存中综合其当前配置。配置更新通过oplog机制进行分发,这意味着对mongod
节点的更新会非常快地分发到从节点。然而,在mongos
节点上,分布机制不同。mongos
节点必须定期轮询
主服务器以获取配置更新。如果您在将配置更新到主服务器并在碎片轮询主服务器以获取更新配置详细信息之前在碎片上运行setAuditConfig
和getAuditConfig
,您可能会看到因轮询延迟而产生的不一致数据。
注意
如果您正在编写自动化审计脚本,请注意,在表示集群签名的引号样式和类型之间,mongosh
和旧版mongo
外壳之间有所不同。在mongosh
中,类型是Binary和Long。旧版外壳中相应的类型是BinData和NumberLong。
// mongosh signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } // mongo "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) }
示例
在admin
数据库上运行 getAuditConfig
。
db.adminCommand({getAuditConfig: 1})
示例服务器配置为审计读写操作。它有一个过滤器可以捕获所需的操作,并且将auditAuthorizationSuccess
的值设置为true
。
{ generation: ObjectId("60e73e74680a655705f16525"), filter: { atype: 'authCheck', 'param.command': { '$in': [ 'find', 'insert', 'delete', 'update', 'findandmodify' ] } }, auditAuthorizationSuccess: true, ok: 1, '$clusterTime': { clusterTime: Timestamp(1, 1625767540), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp(1, 1625767540) }