查询SQL审计日志

Lindorm审计日志功能提供了SQL操作日志,您可以通过审计日志查看一段时间内的SQL操作记录,还可以使用各种过滤条件对查询到的记录进行筛选。

前提条件

审计日志类型

Lindorm审计日志记录了以下SQL操作:

  • DDL:包括CREATE DATABASE、CREATE TABLE、ALTER TABLE、DROP TABLE等。

  • DML:包括INSERT、UPSERT、DELETE、UPDATE等。

  • DQL:包括SELECT等。

  • DCL:包括GRANT、REVOKE等。

重要

通常情况下,DML和DQL操作较多,记录此类审计日志可能会影响实例的性能和稳定性。因此,宽表引擎默认仅记录DDL和DCL类型的SQL审计日志。如需开启DML和DQL审计日志,可以通过系统变量AUDIT_LEVEL来调整审计日志的级别。详细操作,请参见修改审计日志级别

日志保留时长

Lindorm审计日志默认的保存时间为180天。当日志保存时间达到数据保存时间后,日志将被删除。

修改审计日志的保存时间,请参见如何删除日志?

查看审计日志

  1. 登录Lindorm管理控制台

  2. 在页面左上角,选择实例所属的地域。

  3. 实例列表页,单击目标实例ID或者目标实例所在行操作列的管理

  4. 在左侧导航栏,选择宽表引擎 > SQL审计日志,查看Lindorm宽表的审计日志详情。

    说明

    默认显示最近15分钟内的日志详情,您也可以根据需求修改需要查询的时间段。

  5. 可选)在原始日志页签下,单击目标索引字段,可根据该字段筛选日志。image

审计字段说明

字段名

说明

instance_id

Lindorm实例ID。

reqId

请求ID,用于标识该操作审计记录的唯一标识符。

user

该操作审计记录对应的用户名。

fail

SQL语句是否执行成功。0表示成功, 0以外的数值表示失败。

reason

该操作审计记录对应的错误信息,仅当该操作出现错误时才会记录该信息。

connectionId

用户所在连接的标识符。

protocol

客户端协议类型,Avatica或MySQL。

db

当前选择的数据库名。

sql

执行的SQL语句。

sqlType

SQL类型。包括selectinsertupdatedeletecreatedropalterother等。

params

传入执行SQL语句的参数,多个参数使用半角逗号(,)分割,用于绑定参数的查询场景。

sqlTime

SQL开始执行的时间。

responseTime

响应时间。单位:毫秒(ms)。

checkRows

扫描的行数,表示查询时从数据存储引擎返回的行数。

affectRows

SQL执行返回的行数。如果是增删改操作,affectRows表示影响的行数。如果是查询语句,affectRows表示返回的行数。

dbVersion

当前连接的服务端SQL版本。

hostname

服务端节点主机名。

clientIp

客户端IP地址。

clientPort

客户端端口。

修改审计日志级别

您可以通过ALTER SYSTEM语句修改AUDIT_LEVEL参数的值,调整审计日志的输出级别。

AUDIT_LEVEL参数取值如下:

  • 0:输出DDL和DCL日志。

  • 1:输出DDL、DCL、DML日志。

  • 2:输出DDL、DCL、DQL日志。

  • 3:输出DDL、DCL、DML、DQL日志。

示例

修改审计日志级别,输出DDL、DCL和DQL日志。

ALTER SYSTEM SET AUDIT_LEVEL = 2;

结果验证

您可以执行SHOW SYSTEM VARIABLES LIKE 'AUDIT_LEVEL';语句查看是否修改成功。

更多关于系统变量的使用说明,请参见ALTER SYSTEM