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天。当日志保存时间达到数据保存时间后,日志将被删除。
修改审计日志的保存时间,请参见如何删除日志?。
查看审计日志
登录Lindorm管理控制台。
在页面左上角,选择实例所属的地域。
在实例列表页,单击目标实例ID或者目标实例所在行操作列的管理。
在左侧导航栏,选择
,查看Lindorm宽表的审计日志详情。说明默认显示最近15分钟内的日志详情,您也可以根据需求修改需要查询的时间段。
(可选)在原始日志页签下,单击目标索引字段,可根据该字段筛选日志。
审计字段说明
字段名 | 说明 |
instance_id | Lindorm实例ID。 |
reqId | 请求ID,用于标识该操作审计记录的唯一标识符。 |
user | 该操作审计记录对应的用户名。 |
fail | SQL语句是否执行成功。 |
reason | 该操作审计记录对应的错误信息,仅当该操作出现错误时才会记录该信息。 |
connectionId | 用户所在连接的标识符。 |
protocol | 客户端协议类型,Avatica或MySQL。 |
db | 当前选择的数据库名。 |
sql | 执行的SQL语句。 |
sqlType | SQL类型。包括 |
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。