【YashanDB 知识库】审计表 UNIFIED_AUDIT_TRAIL 出现 YAS-00220 utf8 sequence is wrong
作者:YashanDB
- 2025-01-08 广东
本文字数:1506 字
阅读完需:约 5 分钟
本文内容来自 YashanDB 官网,原文内容请见https://yashandb.com/newsinfo/7863038.html?templateId=1718516
【问题分类】功能使用
【关键字】UNIFIED_AUDIT_TRAIL,YAS-00220
【问题描述】当审计对象的 SQL 语句包含非标准中文字符时,出现 YAS-00220 utf8 sequence is wrong,影响审计记录。
--第一步:打开审计开关
SQL> ALTER SYSTEM SET UNIFIED_AUDITING = true;
Succeed.
--创建审计策略
CREATE AUDIT POLICY up2
ACTIONS DROP TABLE,DELETE ON sales.area,INSERT ON sales.area,UPDATE ON sales.area,ALL ON sales.sales_info;
AUDIT POLICY up2;
--第二步:执行操作被正常记录
SQL> conn sales/sales
Connected to:
YashanDB Server Enterprise Edition Release 23.2.7.100 x86_64 - Linux
SQL> UPDATE area SET DHQ='guangzhou' WHERE area_no='01';
1 row affected.
SQL> commit;
Succeed.
SQL> SELECT dbusername,event_timestamp,sql_text,object_schema
FROM UNIFIED_AUDIT_TRAIL
WHERE dbusername='SALES'; 2 3
DBUSERNAME EVENT_TIMESTAMP SQL_TEXT OBJECT_SCHEMA
---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
SALES 2024-12-11 09:52:27.602837 UPDATE area SET DHQ='guangzhou' WHERE area_no='01' SALES
1 row fetched.
--第三步:其中 '广.' 为非正常中文字段,查看审计表出现报错
SQL> UPDATE area SET DHQ='广.' WHERE area_no='01';
1 row affected.
SQL> commit;
Succeed.
SQL> SELECT dbusername,event_timestamp,sql_text,object_schema
FROM UNIFIED_AUDIT_TRAIL
WHERE dbusername='SALES'; 2 3
DBUSERNAME EVENT_TIMESTAMP SQL_TEXT OBJECT_SCHEMA
---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
SALES 2024-12-11 09:52:27.602837 UPDATE area SET DHQ='guangzhou' WHERE area_no='01' SALES
YAS-00220 utf8 sequence is wrong
--第四步:执行操作无法被正常记录
SQL> UPDATE area SET DHQ='guangzhou' WHERE area_no='01';
1 row affected.
SQL> commit;
Succeed.
SQL> SELECT dbusername,event_timestamp,sql_text,object_schema FROM UNIFIED_AUDIT_TRAIL WHERE dbusername='SALES';
DBUSERNAME EVENT_TIMESTAMP SQL_TEXT OBJECT_SCHEMA
---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
SALES 2024-12-11 09:52:27.602837 UPDATE area SET DHQ='guangzhou' WHERE area_no='01' SALES
YAS-00220 utf8 sequence is wrong
【问题原因分析】数据库BUG
【解决/规避方法】避免包含非正常中文字符,重新清理审计表。
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL (
DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
true);
END;
/
复制代码
【影响范围】23.2.9.xxx 前的所有版本
【修复版本】-
划线
评论
复制
发布于: 刚刚阅读数: 5
版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/93cf0b870e33878e98d2228de】。文章转载请联系作者。
YashanDB
关注
全自研国产新型大数据管理系统 2022-02-15 加入
还未添加个人简介
评论