找回密码
 立即注册
首页 业界区 安全 【YashanDB知识库】审计表UNIFIED_AUDIT_TRAIL出现YAS-0 ...

【YashanDB知识库】审计表UNIFIED_AUDIT_TRAIL出现YAS-00220 utf8 sequence is wrong

簧横 2025-6-11 09:08:25
【问题分类】功能使用
【关键字】UNIFIED_AUDIT_TRAIL,YAS-00220
【问题描述】当审计对象的SQL语句包含非标准中文字符时,出现YAS-00220 utf8 sequence is wrong,影响审计记录。
  1. --第一步:打开审计开关
  2. SQL> ALTER SYSTEM SET UNIFIED_AUDITING = true;
  3. Succeed.
  4. --创建审计策略
  5. CREATE AUDIT POLICY up2
  6.   ACTIONS DROP TABLE,DELETE ON sales.area,INSERT ON sales.area,UPDATE ON sales.area,ALL ON sales.sales_info;
  7. AUDIT POLICY up2;
  8. --第二步:执行操作被正常记录
  9. SQL> conn sales/sales
  10. Connected to:
  11. YashanDB Server Enterprise Edition Release 23.2.7.100 x86_64 - Linux
  12. SQL> UPDATE area SET DHQ='guangzhou' WHERE area_no='01';
  13. 1 row affected.
  14. SQL> commit;
  15. Succeed.
  16. SQL> SELECT dbusername,event_timestamp,sql_text,object_schema
  17. FROM UNIFIED_AUDIT_TRAIL
  18. WHERE dbusername='SALES'; 2 3
  19. DBUSERNAME EVENT_TIMESTAMP SQL_TEXT OBJECT_SCHEMA
  20. ---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
  21. SALES 2024-12-11 09:52:27.602837 UPDATE area SET DHQ='guangzhou' WHERE area_no='01' SALES
  22. 1 row fetched.
  23. --第三步:其中 '广.' 为非正常中文字段,查看审计表出现报错
  24. SQL> UPDATE area SET DHQ='广.' WHERE area_no='01';
  25. 1 row affected.
  26. SQL> commit;
  27. Succeed.
  28. SQL> SELECT dbusername,event_timestamp,sql_text,object_schema
  29. FROM UNIFIED_AUDIT_TRAIL
  30. WHERE dbusername='SALES'; 2 3
  31. DBUSERNAME EVENT_TIMESTAMP SQL_TEXT OBJECT_SCHEMA
  32. ---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
  33. SALES 2024-12-11 09:52:27.602837 UPDATE area SET DHQ='guangzhou' WHERE area_no='01' SALES
  34. YAS-00220 utf8 sequence is wrong
  35. --第四步:执行操作无法被正常记录
  36. SQL> UPDATE area SET DHQ='guangzhou' WHERE area_no='01';
  37. 1 row affected.
  38. SQL> commit;
  39. Succeed.
  40. SQL> SELECT dbusername,event_timestamp,sql_text,object_schema FROM UNIFIED_AUDIT_TRAIL WHERE dbusername='SALES';
  41. DBUSERNAME EVENT_TIMESTAMP SQL_TEXT OBJECT_SCHEMA
  42. ---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
  43. SALES 2024-12-11 09:52:27.602837 UPDATE area SET DHQ='guangzhou' WHERE area_no='01' SALES
  44. YAS-00220 utf8 sequence is wrong
复制代码
【问题原因分析】数据库BUG
【解决/规避方法】避免包含非正常中文字符,重新清理审计表。
  1. BEGIN
  2.   DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL (
  3.         DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
  4.         true);
  5. END;
  6. /
复制代码
【影响范围】23.2.9.xxx前的所有版本
【修复版本】-

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册