auditConfig
定义
语法
要为部署设置auditConfig
,请对admin
数据库运行以下命令:
db.adminCommand( { setClusterParameter: { auditConfig: <value> } } )
要查看auditConfig
集群参数的当前值,请对admin
数据库运行以下命令:
db.adminCommand( { getClusterParameter: "auditConfig" } )
参数字段
auditConfig.auditAuthorizationSuccess
类型:布尔值
默认:false
要审核读取和写入操作,必须将
auditConfig.auditAuthorizationSuccess
设置为true
。当
auditConfig.auditAuthorizationSuccess
为false
时,审核系统仅记录authCheck
的授权失败。 当auditAuthorizationSuccess
为false
时,审核对性能的影响较小,因为审核系统仅记录授权失败。
auditConfig.filter
类型:文档
默认:无
用于控制 审核系统 记录 的操作类型的 筛选器表达式。
文档字段可以是审核消息中的任何字段,包括参数文档中返回的字段。 字段值是查询条件表达式。
要查看示例过滤文档,请参阅示例部分。
行为
必须启用审核功能才能使用auditConfig
。
检索审核配置
如果启用了运行时审核配置,则auditAuthorizationSuccess
参数不会出现在mongod
或mongos
配置文件中。 如果存在该参数,则服务器将无法启动。
如果对auditConfig
运行getClusterParameter
,则不参与运行时审核配置的节点将返回其auditLog.filter
和setParameter.auditAuthorizationSuccess
的当前配置文件设置。
设置审核配置
使用setClusterParameter
设置审核配置时,更改会立即在所有配置服务器和分片集群中的分片上生效。
审核筛选器设置过宽或启用auditConfig.auditAuthorizationSuccess
会降低性能。
例子
以下示例使用setClusterParameter
命令在创建或删除collection时启用审核。审核消息已重新格式化。 它们在日志文件中显示在一行上。
db.adminCommand( { setClusterParameter: { auditConfig: { filter: { atype: { $in: [ "createCollection", "dropCollection" ] } }, auditAuthorizationSuccess: false } } } )
设置auditConfig
参数后,如果在sales
数据库中创建inventory
集合,审核系统会记录类似于以下内容的消息:
{ "atype" : "createCollection", "ts" : { "$date" : "2021-08-09T13:45:05.372+00:00" }, "uuid" : { "$binary" : "RKU/YLizS6K9se2GUU7ZVQ==", "$type" : "04" }, "local" : { "ip" : "127.0.0.1", "port" : 27502 }, "remote" : { "ip" : "127.0.0.1", "port" : 51918 }, "users" : [], "roles" : [], "param" : { "ns" : "sales.inventory" }, "result" : 0 }
如果从sales
数据库中删除inventory
集合,审核系统会记录类似于以下内容的消息:
{ "atype" : "dropCollection", "ts" : { "$date" : "2021-08-09T13:45:00.661+00:00" }, "uuid" : { "$binary" : "0gle4/pSQli+LUcz43ykag==", "$type" : "04" }, "local" : { "ip" : "127.0.0.1", "port" : 27502 }, "remote" : { "ip" : "127.0.0.1", "port" : 51928 }, "users" : [], "roles" : [], "param" : { "ns" : "sales.inventory" }, "result" : 0 }