文档中心>云数据库 MySQL>数据库审计>SQL 审计规则(旧版)

SQL 审计规则(旧版)

最近更新时间:2024-08-09 10:23:01

我的收藏
本文为您介绍云数据库 MySQL 数据库审计规则相关内容。
说明:
旧版“审计规则”和“审计策略”于2024年08月09日下线,存量已开启老版本规则审计的实例请通过 修改审计规则 来对审计规则进行调整,修改后,实例将按照新版本的审计规则进行审计及日志存储。详情参见【2024年08月09日】数据库审计“规则审计功能”相关公告

规则内容

支持以下类型设置: 客户端 IP、数据库账户、数据库名,支持【包含、不包含】方式匹配。
全量审计规则为特殊规则,启用后审计所有语句。

规则运算

每个规则内部不同类型为追加限制条件关系,即与(&&)关系。
规则与规则之间为或(||)关系 。 每个实例可以指定一个或多个审计规则,只要符合任意一个规则,就应该审计。如 A 规则指定只审计 user1 的执行时间 >= 1秒的操作,B 规则审计 user1 并且执行时间 < 1的语句,那么最终对 user1 所有语句都要审计。

规则详解

对于客户端 IP、数据库账户、数据库名支持【包含、不包含】运算,一次只支持一个运算符设置。

对于数据库名的说明

如果是以下的表对象类型的语句:
SQLCOM_SELECT, SQLCOM_CREATE_TABLE, SQLCOM_CREATE_INDEX, SQLCOM_ALTER_TABLE,
SQLCOM_UPDATE, SQLCOM_INSERT, SQLCOM_INSERT_SELECT, SQLCOM_DELETE, SQLCOM_TRUNCATE, SQLCOM_DROP_TABLE
对这一类型动作,数据库名以语句中实际操作的数据库名为准。例如,当前是 use db3 库,语句为:
select *from db1.test,db2.test;
那么会以 db1 和 db2 作为目标库进行规则判断,如果规则配置要审计 db1 的库则会进行审计,规则配置要审计 db3 的库则不会进行审计。 如果不是上面的表对象类型语句,以当前 use 的库作为目标库进行判断。如当前库为 use db1,执行语句为show databases,那么以当前库 db1 作为目标库进行规则判断,若规则配置审计 db1 则会进行审计。

特别说明

包含、不包含只能写一个值;如果写多个会被当成一个串,造成匹配不对。