getAuditConfig
重要
在版本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
节点必须定期poll
主服务器以进行配置更新。 在分片轮询主服务器以获取更新的配置详细信息之前,如果您在主服务器上运行setAuditConfig
并在分片上运行 { getAuditConfig
},则可能会由于轮询延迟而看到过时数据。
注意
如果您正在编写自动审核脚本,请注意,mongosh
和旧版 mongo
shell之间用于表示集群签名的引号样式和类型有所不同。 在mongosh
中,类型为 Binary 和 Long。 传统 shell 中的对应类型是 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) }