本文档介绍配置数据审计自定义规则时的注意事项。
规则说明
在配置数据审计自定义规则时,由于所有条件以AND关系组合,即取条件交集,因此多个条件之间可能存在互斥,需谨慎配置以避免冲突,造成配置失效。
易混淆表达式含义
-
等于:字段值与配置值完全相同,
val.equals(exp)。 -
包含:字段值中包含配置值作为连续子串时命中,
val.contains(exp)。 -
属于:字段值等于配置值中任意一个,
val.equals(exp1) || val.equals(exp2) || val.equals(exp3) || ...。
场景示例
在配置数据审计自定义规则时,可以参考下列互斥场景,避免配置冲突。
场景一:资产范围互斥
在配置资产条件时,实例、数据库与数据库表需满足层级包含关系,若配置的数据库不属于所选实例,则条件不成立,不会触发告警通知。
例如:以下配置中,实例名称、数据库名称和表名称并未满足层级包含关系,所以该条件不成立。
在资产条件中,实例名称设置为实例A,数据库名称设置为实例B中的数据库B,表名称设置为数据库C中的表C。
场景二:行为内容与操作互斥
在配置行为条件时,配置的SQL内容必须和执行的操作类型相匹配,否则条件不成立,不会触发告警通知。
例如:login failed!属于登录失败错误信息,对应Login操作类型,与Select操作类型无关,因此该条件不成立。
-
当操作符为等于时,仅允许选择一个目标对象。
-
当操作符为属于时,若需输入多个目标对象,请按回车键分隔。
场景三:行为与结果配置互斥
行为和结果的条件配置必须相匹配,否则条件不成立,不会触发告警通知。
-
例1:
login failed!属于登录失败错误信息,并不会影响数据库表行数,因此该条件不成立。在行为条件中,SQL内容的操作符设置为等于,值为
login failed!,操作类型未选择。在结果条件中,影响行数设置为大于10,执行时长、结果集和执行状态均未配置。
-
例2:行为中配置的
login failed!属于登录失败错误信息,与结果中配置的执行状态成功互斥,因此该条件不成立。在行为条件中,SQL内容的操作符设置为等于,值为
login failed!,操作类型未选择。