基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
AUDIT_LOG_FILTER_SET_FILTER
更新时间:2026-08-13 19:27:48
描述
该函数(表达式)用于创建过滤器。
语法
AUDIT_LOG_FILTER_SET_FILTER('filter_name', 'definition_of_filters');
说明
参数解释
filter_name:用于指定过滤器名称。说明
AUDIT_LOG_FILTER_SET_FILTER是CREATE OR REPLACE语义,对已存在的对象执行 DDL 会覆盖。definition_of_filters:用于定义审计过滤器的具体配置,采用 JSON 格式进行表述。当前版本的过滤器设计原则与 MySQL 兼容,但只支持对审计事件类型进行过滤。以下是几种过滤器配置的写法:记录所有事件。
{ "filter": { "log": true } }不记录所有事件。
{ "filter": { "log": false } }只记录登录登出。
{ "filter": { "log": true, "class": [ { "name": "connection" } ] } }记录所有事件的另一种写法。
{ "filter": { "log": true, "class": [ { "name": "connection" }, { "name": "general" }, { "name": "table_access" } ] } }
审计事件分类如下:
| 事件类型 | 说明 |
|---|---|
| connection | 登录退出。 |
| table_access | DML 语句。 |
| general | cmd 语句,parser 失败。 |
返回值
表达式输入必须是字符串常量,输出是字符串类型。
- 当 DDL 执行成功时,表达式返回
OK。 - 当 DDL 执行失败时,
SELECT语句仍然执行成功,表达式的输出结果为错误信息。
示例
创建记录所有事件的过滤器
log_all。SELECT AUDIT_LOG_FILTER_SET_FILTER('log_all', '{ "filter": { "log": true } }');返回结果如下:
+-------------------------------------------------------------------------+ | AUDIT_LOG_FILTER_SET_FILTER('log_all', '{ "filter": { "log": true } }') | +-------------------------------------------------------------------------+ | OK | +-------------------------------------------------------------------------+ 1 row in set当 DDL 失败时,
SELECT语句仍然执行成功,表达式的输出结果为错误信息。SELECT AUDIT_LOG_FILTER_SET_FILTER('log_err', '1');返回结果如下:
+---------------------------------------------+ | AUDIT_LOG_FILTER_SET_FILTER('log_err', '1') | +---------------------------------------------+ | ERROR: JSON parsing error. | +---------------------------------------------+ 1 row in set