云数据库 MySQL 查看审计日志

这里说明如何查看 SQL 洞察(原数据库审计)的审计日志及相关审计日志列表的字段。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

注意:说明:

一、前提条件

已 开通审计服务。

二、查看审计日志

注意:说明:

注意:审计日志展示时间扩展到毫秒,便于对 SQL 进行更精确的排序和问题分析。

1. 登录 MySQL 控制台。

2. 在左侧导航栏选择 SQL 洞察(原数据库审计)。

3. 在上方选择地域后,在审计实例页,单击审计存储状态选择已开启选项过滤出已开启审计的实例。

4. 在审计实例列表里找到目标实例(也可在搜索框通过资源属性筛选快速查找),在其操作列单击查看审计日志,跳转至审计日志页查看对应日志。

三、工具列表

工具 说明
刷新 单击,可刷新审计日志列表。
自定义列表字段 单击,可选择你想显示的列表详细信息。
下载 单击,可以创建日志文件,在弹窗中可以选择下载文件里包含的日志字段,支持选择全部字段,也支持选择与自定义列表字段联动。如果选择与自定义列表字段联动,则下载的日志文件仅包含自定义列表字段中所展示的字段且字段顺序与其一致。
文件列表 单击,可进入审计日志文件列表查询已生成或生成中的文件信息和下载地址。复制下载地址进行下载,即可获取完整的 SQL 审计日志。目前日志文件下载仅提供腾讯云内网地址,请通过同一地域的腾讯云服务器进行下载(例如:北京区的数据库实例审计日志请通过北京区的 CVM 下载)。日志文件有效期为24小时,请及时下载。每一个数据库实例的日志文件不得超过30个,请下载后及时删除清理。若状态显示失败,可能是由于日志过多导致,请缩短时间窗口分批下载。

四、过滤及搜索项说明

·在审计实例筛选框,可选择切换已开启审计服务的其他审计实例。

·在时间框,默认选择近1小时,可快捷选择其他时间(近3小时、近24小时、近7天),也支持自定义时间段,可查看所选时间段内相关审计日志。

注意:说明:

注意:搜索时间段支持选取存在数据的任意时间段进行搜索,最多展示符合条件的前60000条记录。

·在搜索框,选择搜索项(SQL 命令详情、客户端 IP、用户账号、数据库名、表名、SQL 类型、错误码、执行时间(微秒)、锁等待时间(微秒)、IO 等待时间(纳秒)、事务持续时间(微秒)、CPU 时间(微秒)、风险等级、线程 ID、事务 ID、扫描行数、影响行数、返回行数、审计规则等)进行搜索,可查看相关审计结果,多个关键词使用换行符分隔。

搜索项 匹配项 说明
SQL 命令详情 包含-或-分词 规则说明输入 SQL 命令详情,多个关键字使用换行符进行分隔。SQL 命令详情搜索框的匹配项分为三层,一层设置正反向的匹配模式(包含、不包含);二层设置关键词之间的逻辑关系(或、且);三层设置每个关键词的匹配模式(分词、通配)。注意:SQL 命令详情搜索不区分大小写。支持“包含”、“不包含”两种正反向匹配模式。关键词之间支持“或”、“且”两种逻辑匹配,“或”表示不同关键词之间取“并集”关系,“且”表示不同关键词之间取“交集”关系。每个关键词支持“分词”、“通配”两种匹配模式,“分词”表示 SQL 命令详情中的每个关键词需要精确匹配,“通配”表示 SQL 命令详情中的每个关键词可以模糊匹配。示例说明假设 SQL 命令详情为:SELECT * FROM test_db1 join test_db2 LIMIT 1;在“包含(分词)”搜索模式下,可以通过“SELECT”、“select * from”、“*”、“SELECT * FROM test_db1 join test_db2 LIMIT 1;”、“from Test_DB1”等分词关键词进行搜索,无法通过 “SEL”、“sel”、“test” 等通配关键词进行搜索。在“包含(通配)”搜索模式下,可以通过“SEL”、“sel”、“test”、“DB”等通配关键词进行搜索。在“包含(且)” 搜索模式下,多个关键词之间是“且”的关系,即输入“SELECT”、“test_db” 等关键词,可以查询到所有包含“SELECT”和“test_db”的 SQL 命令。在“包含(或)” 搜索模式下,多个关键词之间是“或”的关系,即输入“test_db1”、“test_db2” ,可查询到所有包含“test_db1”或者包含“test_db2”的 SQL 命令。
 包含-且-分词 
 不包含-且-分词 
 包含-或-通配 
 包含-且-通配 
 不包含-且-通配 
客户端 IP 包含
不包含
等于
不等于
输入客户端 IP,多个关键字使用换行符进行分隔;IP 地址支持使用 * 作为条件进行筛选。如搜索客户端 IP: 9.223.23.2*,则匹配以9.223.23.2 开头的 IP 地址。
用户账号 包含
不包含
等于
不等于
输入用户账号,多个关键字使用换行符进行分隔。
数据库名 包含
不包含
等于
不等于
输入数据库名,多个关键字使用换行符进行分隔。说明:数据库名的搜索不区分大小写。
表名 等于不等于 输入表名,表名搜索说明如下:不区分大小写。搜索格式为 DbName.TableName。例如:数据库 test_db 中包含表 test_table,若想搜索表 test_table,则需要输入:表名等于 test_db.test_table。说明:最多只能记录64个表名。对于字段“表名”,MySQL 5.7 20240331及以上版本和 MySQL 8.0 20240930及以上版本已直接支持。其他版本不支持,如需支持,请升级至已支持的版本。
SQL 类型 等于
不等于
下拉选择 SQL 类型(ALTER、CHANGEUSER、CREATE、DELETE、DROP、EXECUTE、INSERT、LOGOUT、OTHER、REPLACE、SELECT、SET、UPDATE、PREPARE),支持多选。说明:对于 SQL 类型“PREPARE”,MySQL 5.7 20230115及以上版本和 MySQL 8.0 20221215及以上版本才支持。其他版本不支持,如需支持,请升级至已支持的版本。关于 SQL 类型 = PREPARE 的审计记录,请注意:Prepare 阶段本身不记录完整 SQL。Prepare 成功时,完整 SQL 是在 EXECUTE 阶段记录。Prepare 失败(如表不存在,错误码1146)时,审计中会无记录。
错误码 等于
不等于
输入错误码,多个关键字使用换行符进行分隔。
执行时间(微秒) 区间格式 输入执行时间,格式为 M-N,如10-100或20-200。
锁等待时间(微秒) 区间格式 输入锁等待时间,格式为 M-N,如10-100或20-200。
IO 等待时间(纳秒) 区间格式 输入 IO 等待时间,格式为 M-N,如10-100或20-200。
事务持续时间(微秒) 区间格式 输入事务持续时间,格式为 M-N,如10-100或20-200。
CPU 时间(微秒) 区间格式 输入 CPU 时间,格式为 M-N,如10-100或20-200。
风险等级 包含不包含 选择低风险、中风险或高风险,过滤命中规则模板风险等级设置的审计日志。也支持输入为空,表示过滤历史存量没有风险等级标签的审计日志。
线程 ID 等于不等于 输入线程 ID,多个关键字使用换行符进行分隔。
事务 ID 等于不等于 输入事务 ID,多个关键字使用换行符进行分隔。说明:对于字段“事务 ID”,MySQL 5.7 20240331及以上版本,以及 MySQL 8.0 20230630及以上版本支持,其他版本不支持,如需支持,请升级至已支持的版本。当前仅显式事务中执行增删改操作后,才会产生事务 ID,隐式事务没有事务 ID。
扫描行数 区间格式 输入扫描行数,格式为 M-N,如10-100或20-200。
影响行数 区间格式 输入影响行数,格式为 M-N,如10-100或20-200。
返回行数 区间格式 输入返回行数,格式为 M-N,如10-100或20-200。说明:返回行数字段代表执行 SQL 返回的具体行数,主要用于对 SELECT 类型 SQL 影响的判断。
审计规则 包含不包含 展示某地域的规则模板的模板 ID 和模板名称,你可以根据规则模板过滤出命中该规则模板的审计日志。支持输入为空,表示过滤历史存量没有审计规则标签的审计日志和没有命中规则的全审计日志。支持按照规则模板 ID 和规则模板名称对审计规则进行搜索。支持同时选中多个规则模板。

五、审计字段

云数据库 MySQL 的审计日志中支持如下字段。

序号 字段名 支持的内核版本 字段说明
1 时间 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 记录操作发生(SQL 执行)的开始时间。
2 风险等级 – 表示该操作的风险级别,分为低风险、中风险、高风险,对于全审计,没有命中审计规则的日志,风险等级会显示为“-”。
3 客户端 IP MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 发起数据库操作的客户端的 IP 地址。
4 数据库名 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 操作涉及的数据库名称。
5 表名 MySQL 5.6 不支持MySQL 5.7 ≥ 20240331MySQL 8.0 ≥ 20240930 操作涉及的具体数据表名称(如果有),最多只能记录64个表名。说明:开启回收站功能后 truncate 或 drop 操作审计日志,表名字段会增加记录 __cdb_recycle_bin__ 的库表。
6 用户账号 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 执行操作的用户账号。
7 SQL 类型 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 SQL 语句的类型,如 SELECT、INSERT、UPDATE、DELETE 等。
8 SQL 命令详情 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 执行的具体 SQL 命令文本。
9 错误码 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 当执行 SQL 语句遇到错误时,会生成一个错误码。错误码是一个整数,用于标识特定的错误类型,0表示成功。
10 线程 ID MySQL 5.6 ≥ 20190930MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 每个连接到数据库的客户端都有一个唯一的线程 ID。这个 ID 用于标识哪个客户端执行了特定的操作。
11 事务 ID MySQL 5.6 不支持MySQL 5.7 ≥ 20240331MySQL 8.0 ≥ 20230630 在支持事务的存储引擎(如 InnoDB)中,每个事务都有一个唯一的事务 ID。这个 ID 用于标识特定的事务。
12 扫描行数 MySQL 5.6 ≥ 20190930MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 执行查询时,数据库扫描过的行数。这个数字可以帮助你了解查询的效率。
13 返回行数 MySQL 5.6 ≥ 20190930MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 查询结果返回的行数。这个数字可以帮助你了解查询的结果集大小。
14 影响行数 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 对数据表执行修改操作(如 INSERT、UPDATE、DELETE)时实际影响的行数。这个数字可以帮助你了解操作的影响范围。
15 执行时间(微秒) MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 SQL 语句从开始执行到结束所花费的时间,以微秒为单位。这个数字可以帮助你了解查询的性能。
16 CPU 时间(微秒) MySQL 5.6 ≥ 20190930MySQL 5.7 ≥ 20190830MySQL 8.0 ≥ 20210330 SQL 语句在 CPU 上执行所消耗的时间,以微秒为单位。这个数字可以帮助你了解查询的 CPU 使用情况。
17 锁等待时间(微秒) MySQL 5.6 ≥ 20190930MySQL 5.7 ≥ 20190830MySQL 8.0 ≥ 20210330 等待获取数据库锁的时间,以微秒为单位。这个数字可以帮助你了解查询的锁竞争情况。
18 IO 等待时间(纳秒) MySQL 5.6 ≥ 20190930MySQL 5.7 ≥ 20190830MySQL 8.0 ≥ 20210330 等待 IO 操作完成的时间,以纳秒为单位。这个数字可以帮助你了解查询的 IO 性能。
19 事务持续时间(微秒) MySQL 5.6 ≥ 20190930MySQL 5.7 ≥ 20190830MySQL 8.0 ≥ 20210330 事务从开始到提交或回滚所花费的总时间,以微秒为单位。这个数字可以帮助你了解事务的性能。
20 策略名称 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 新版本规则审计不再涉及此字段。
21 审计规则 MySQL 5.6 ≥ 20180122MySQL 5.7 ≥ 20190430MySQL 8.0 ≥ 20210330 展示该条审计日志所命中的是哪个规则模板,单击对应规则模板后,可展示该规则模板的具体规则详情,包括基本信息、参数设置、修改历史。历史存量的审计日志,审计规则的值展示为“-”。没有命中规则的全审计日志,审计规则的值展示为“-”。
22 客户端 Port MySQL 5.7 ≥ 20240331MySQL 8.0 ≥ 20240930 发起数据库操作的客户端的端口号。

六、SQL 语句类型与 SQL 语句映射对象关系

序号 SQL 语句类型 SQL 语句映射对象
0 OTHER 除下述 SQL 语句类型外的所有 SQL 语句类型。
1 SELECT SQLCOM_SELECT
2 INSERT SQLCOM_INSERT,SQLCOM_INSERT_SELECT
3 UPDATE SQLCOM_UPDATE,SQLCOM_UPDATE_MULTI
4 DELETE SQLCOM_DELETE,SQLCOM_DELETE_MULTI,SQLCOM_TRUNCATE
5 CREATE SQLCOM_CREATE_TABLE,SQLCOM_CREATE_INDEX,SQLCOM_CREATE_DB,SQLCOM_CREATE_FUNCTION,SQLCOM_CREATE_USER,SQLCOM_CREATE_PROCEDURE,SQLCOM_CREATE_SPFUNCTION,SQLCOM_CREATE_VIEW,SQLCOM_CREATE_TRIGGER,SQLCOM_CREATE_SERVER,SQLCOM_CREATE_EVENT,SQLCOM_CREATE_ROLE,SQLCOM_CREATE_RESOURCE_GROUP,SQLCOM_CREATE_SRS
6 DROP SQLCOM_DROP_TABLE,SQLCOM_DROP_INDEX,SQLCOM_DROP_DB,SQLCOM_DROP_FUNCTION,SQLCOM_DROP_USER,SQLCOM_DROP_PROCEDURE,SQLCOM_DROP_VIEW,SQLCOM_DROP_TRIGGER,SQLCOM_DROP_SERVER,SQLCOM_DROP_EVENT,SQLCOM_DROP_ROLE,SQLCOM_DROP_RESOURCE_GROUP,SQLCOM_DROP_SRS
7 ALTER SQLCOM_ALTER_TABLE,SQLCOM_ALTER_DB,SQLCOM_ALTER_PROCEDURE,SQLCOM_ALTER_FUNCTION,SQLCOM_ALTER_TABLESPACE,SQLCOM_ALTER_SERVER,SQLCOM_ALTER_EVENT,SQLCOM_ALTER_USER,SQLCOM_ALTER_INSTANCE,SQLCOM_ALTER_USER_DEFAULT_ROLE,SQLCOM_ALTER_RESOURCE_GROUP
8 REPLACE SQLCOM_REPLACE,SQLCOM_REPLACE_SELECT
9 SET SQLCOM_SET_OPTION,SQLCOM_RESET,SQLCOM_SET_PASSWORD,SQLCOM_SET_ROLE,SQLCOM_SET_RESOURCE_GROUP
10 EXECUTE SQLCOM_EXECUTE
11 LOGIN 登入数据库行为,不受审计规则约束,默认记录登录行为。
12 LOGOUT 登出数据库行为,不受审计规则约束,默认记录登出行为。
13 CHANGEUSER 更改用户行为,不受审计规则约束,默认记录更改用户行为。
14 PREPARE –
赞 (0)
上一篇 4天前
下一篇 4天前