基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
gv$ob_sql_audit 视图查询结果与预期不符问题的原因和解决方法
更新时间:2025-08-28 08:07
问题现象
通过 gv$ob_sql_audit 视图查询的部分 query_sql 字段显示为空,具体表现为在业务租户(非 SYS 租户)下进行 SQL 审计时,部分 SQL 语句未能正常记录。

关键信息
新增配置项 _enable_sql_audit_query_sql 普通租户查询 query_sql 为空,如果打开开关,对普通租户暴露 query_sql 信息,默认值 false,在非 SYS 租户下 query_sql 字段可能为空。
问题原因
此问题是由于 OceanBase 数据库展示 SQL AUDIT 中 query_sql 策略变化导致的。OceanBase 数据库新增了一个配置项 _enable_sql_audit_query_sql,默认值为 false,即默认情况下不记录 query_sql。这一设计主要是出于安全性的考虑,限制了非 SYS 租户下的 SQL 语句记录功能。当该配置项设置为 false 时,非 SYS 租户下的 query_sql 信息将不会被展示。
问题的风险及影响
SQL 审计信息不完整,可能导致问题排查困难。
影响数据库的安全性和合规性审计。
适用版本
OceanBase 数据库 V4.2.5 BP2(oceanbase-4.2.5.2-102000122025011711)及之后的版本。
解决方法
使用 SYS 租户登录 OceanBase 数据库查询
gv$ob_sql_audit视图中的query_sql字段信息。业务租户执行以下命令开启
query_sql记录功能。-- MySQL 租户 ALTER SYSTEM SET _enable_sql_audit_query_sql = true; -- Oracle 租户 ALTER SYSTEM SET "_enable_sql_audit_query_sql" = true;
规避方式
对于需要完整SQL审计信息的场景,建议在初始化数据库配置时,将
_enable_sql_audit_query_sql配置项设置为true。如果出于安全性考虑,可以选择仅在需要进行详细 SQL 审计时临时开启该配置项,并在审计完成后关闭。