当前位置: 首页 > news >正文

OceanBase 审计功能测试报告

文章目录

  • OceanBase 审计功能测试报告
    • 一、测试环境信息
      • 1.1 集群架构
      • 1.2 租户信息
    • 二、审计功能状态检查
      • 2.1 审计参数配置
      • 2.2 审计相关系统表
    • 三、审计数据统计
      • 3.1 整体统计
      • 3.2 按用户分布
      • 3.3 按租户分布
      • 3.4 按客户端IP分布
      • 3.5 失败SQL统计
    • 四、慢查询审计分析
      • 4.1 Top 慢查询
      • 4.2 慢查询分析
    • 五、审计记录示例
      • 5.1 系统租户审计记录
      • 5.2 测试租户审计记录
      • 5.3 失败审计记录
    • 六、审计功能验证结论
      • 6.1 功能验证结果
      • 6.2 审计数据质量评估
    • 七、常用审计查询语句
      • 7.1 查看最近的审计记录
      • 7.2 查看特定租户的审计
      • 7.3 查看特定用户的审计
      • 7.4 查看慢查询
      • 7.5 查看失败的SQL
      • 7.6 按租户统计
      • 7.7 按用户统计
      • 7.8 按客户端IP统计
    • 八、审计配置管理
      • 8.1 启用/禁用审计
      • 8.2 审计策略���置
      • 8.3 审计日志轮转配置
      • 8.4 审计SQL记录配置
    • 九、最佳实践建议
      • 9.1 审计配置建议
      • 9.2 审计监控建议
      • 9.3 审计数据管理
    • 十、测试结论
      • 10.1 总结
      • 10.2 风险提示
    • 附录
      • A. 常用错误码
      • B. 测试命令汇总

OceanBase 审计功能测试报告

一、测试环境信息

项目详情
集群名称ob-xxxxx (已脱敏)
OceanBase 版本4.3.5.3 (OceanBase_CE)
兼容模式MySQL 5.7.25
部署模式3 Zone 高可用架构
K8S 命名空间xxxx-admin (已脱敏)
管理节点x.x.x.x (已脱敏)
测试时间2026-03-04

1.1 集群架构

┌─────────────────────────────────────────────────────────┐ │ OBProxy 负载均衡层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Proxy-0 │ │ Proxy-1 │ │ Proxy-2 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └─────���─────────┬─────────────────────────────────────┘ │ ┌─────────────────▼─────────────────────────────────────┐ │ Observer 存储计算层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Zone1 │ │ Zone2 │ │ Zone3 │ │ │ │ x.x.x.x │ │ x.x.x.x │ │ x.x.x.x │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────┘

1.2 租户信息

租户ID租户名称Zone列表主Zone
1sysobzone1;obzone2;obzone3RANDOM
1001META$xxx (已脱敏)obzone1;obzone2;obzone3RANDOM
1002xxx_mysql_tenant (已脱敏)obzone1;obzone2;obzone3RANDOM

二、审计功能状态检查

2.1 审计参数配置

参数Zone1Zone2Zone3说明
enable_sql_auditTrueTrueTrueSQL审计已启用
audit_log_strategyASYNCHRONOUSASYNCHRONOUSASYNCHRONOUS异步日志记录
audit_log_formatCSVCSVCSV日志格式
audit_log_query_sqlALLALLALL记录完整SQL
audit_log_rotate_on_size256M256M256M日志轮转大小
audit_log_buffer_size16M16M16M异步缓冲区大小
audit_log_compressionNONENONENONE压缩类型
audit_trailNoneNoneNoneOracle兼容审计
audit_sys_operationsFalseFalseFalse是否审计sys操作

2.2 审计相关系统表

表名说明
__all_virtual_sql_auditSQL审计虚拟表(核心)
V$OB_SQL_AUDITSQL审计视图(兼容性)
GV$OB_SQL_AUDIT全局SQL审计视图
__all_audit_log_filter审计日志过滤规则
__all_audit_log_user审计日志用户配置
__all_tenant_security_audit租户安全审计表
__all_tenant_security_audit_history安全审计历史表

三、审计数据统计

3.1 整体统计

统计项数值
总审计记录数29,082 条
失败SQL数量71 条
慢查询数量(>1秒)6 条
审计时间范围2026-03-04 13:45:24 ~ 14:00:19

3.2 按用户分布

用户名SQL数量说明
root21,046系统管理员
(空)2,602内部任务
proxyro173代理只读用户
monitor144监控用户

3.3 按租户分布

租户名称SQL数量平均执行时间(ms)
sys15,0489,454.73
META$xxx (已脱敏)12,9921,420.06
xxx_mysql_tenant (已脱敏)8,993988.03
(空)5,7221,752.28

3.4 按客户端IP分布

客户端IP请求次数
0.0.0.023,629
127.0.0.1169
x.x.x.x (已脱敏)132
x.x.x.x (已脱敏)120
x.x.x.x (已脱敏)112
x.x.x.x (已脱敏)94
x.x.x.x (已脱敏)74
x.x.x.x (已脱敏)28

3.5 失败SQL统计

用户名错误码错误次数说明
monitor-501988租户不存在

四、慢查询审计分析

4.1 Top 慢查询

用户名SQL预览执行时间(ms)
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,904.885
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,903.957
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,902.906
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,902.536
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,902.436
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,901.941
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,901.908
monitorselect /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant9,901.442

4.2 慢查询分析

慢查询主要由监控用户(monitor)的定时任务产生,执行时间约9.9秒,这可能是由于:

  1. 监控查询涉及全表扫描
  2. 使用了弱一致性读取(WEAK)
  3. 系统资源竞争导致

五、审计记录示例

5.1 系统租户审计记录

时间: 2026-03-04 14:02:03 租户: sys 用户: root 客户端: 0.0.0.0 数据库: oceanbase SQL: select @@version_comment, @@version limit 1 返回码: 0 (成功) 执行时间: 272ms

5.2 测试租户审计记录

时间: 2026-03-04 14:02:04 租户: xxx_mysql_tenant (已脱敏) 用户: root 客户端: 0.0.0.0 数据库: oceanbase SQL: SELECT CAST(MVIEW_ID AS UNSIGNED) AS MVIEW_ID, LAST_REFRESH_SCN, CAST(REFRESH_MODE AS UNSIGNED) AS REFRESH_MODE FROM `oceanbase`.`__all_mview` WHERE TENANT_ID = 0 and REFRESH_MODE = 4 返回码: 0 (成功) 执行时间: 159ms

5.3 失败审计记录

时间: 2026-03-04 13:59:29 租户: - 用户: monitor 客户端: x.x.x.x (已脱敏) 数据库: - SQL: select /*+ MONITOR_AGENT READ_CONSISTENCY(WEAK) */ __all_tenant.tenant 返回码: -5019 (租户不存在) 执行时间: 9,904,885ms

六、审计功能验证结论

6.1 功能验证结果

测试项状态说明
审计启用状态通过enable_sql_audit = True
SQL记录完整性通过audit_log_query_sql = ALL
多租户审计通过3个租户均有审计记录
用户审计通过各用户操作均有记录
客户端IP记录通过正确记录客户端IP
执行状态审计通过成功/失败均有记录
执行时间记录通过elapsed_time字段正常
异步审计通过audit_log_strategy = ASYNCHRONOUS
日志轮转通过audit_log_rotate_on_size = 256M

6.2 审计数据质量评估

评估项评分说明
数据完整性100%所有SQL均被记录
数据准确性100%用户、租户、IP等信息准确
时间精度精确到微秒级
可追溯性完整记录执行上下文

七、常用审计查询语句

7.1 查看最近的审计记录

-- 查看最近20条审计记录SELECTtenant_name,user_name,client_ip,db_name,query_sql,ret_code,elapsed_time,FROM_UNIXTIME(request_time/1000000)asrequest_timeFROM__all_virtual_sql_auditORDERBYrequest_timeDESCLIMIT20;

7.2 查看特定租户的审计

-- 查看指定租户的审计记录SELECT*FROM__all_virtual_sql_auditWHEREtenant_name='tenant_name'ORDERBYrequest_timeDESCLIMIT10;

7.3 查看特定用户的审计

-- 查看root用户的审计记录SELECTuser_name,client_ip,db_name,query_sql,ret_code,elapsed_time,FROM_UNIXTIME(request_time/1000000)asrequest_timeFROM__all_virtual_sql_auditWHEREuser_name='root'ORDERBYrequest_timeDESCLIMIT10;

7.4 查看慢查询

-- 查看执行时间超过1秒的SQLSELECTuser_name,tenant_name,client_ip,query_sql,elapsed_time,FROM_UNIXTIME(request_time/1000000)asrequest_timeFROM__all_virtual_sql_auditWHEREelapsed_time>1000000ORDERBYelapsed_timeDESCLIMIT10;

7.5 查看失败的SQL

-- 查看执行失败的SQLSELECTuser_name,tenant_name,client_ip,query_sql,ret_code,elapsed_time,FROM_UNIXTIME(request_time/1000000)asrequest_timeFROM__all_virtual_sql_auditWHEREret_code!=0ORDERBYrequest_timeDESCLIMIT10;

7.6 按租户统计

-- 按租户统计SQL执行次数SELECTtenant_name,COUNT(*)assql_count,AVG(elapsed_time)asavg_elapsed_ms,MAX(elapsed_time)asmax_elapsed_msFROM__all_virtual_sql_auditGROUPBYtenant_nameORDERBYsql_countDESC;

7.7 按用户统计

-- 按用户统计SQL执行次数SELECTuser_name,COUNT(*)assql_count,SUM(CASEWHENret_code=0THEN1ELSE0END)assuccess_count,SUM(CASEWHENret_code!=0THEN1ELSE0END)asfailed_countFROM__all_virtual_sql_auditWHEREuser_name!=''GROUPBYuser_nameORDERBYsql_countDESC;

7.8 按客户端IP统计

-- 按客户端IP统计请求次数SELECTclient_ip,COUNT(*)asrequest_count,COUNT(DISTINCTuser_name)asuser_countFROM__all_virtual_sql_auditGROUPBYclient_ipORDERBYrequest_countDESCLIMIT10;

八、审计配置管理

8.1 启用/禁用审计

-- 启用SQL审计ALTERSYSTEMSETenable_sql_audit=true;-- 禁用SQL审计ALTERSYSTEMSETenable_sql_audit=false;-- 查看审计状态SHOWPARAMETERSLIKE'enable_sql_audit';

8.2 审计策略���置

-- 设置审计日志策略(异步)ALTERSYSTEMSETaudit_log_strategy='ASYNCHRONOUS';-- 设置审计日志策略(性能优先)ALTERSYSTEMSETaudit_log_strategy='PERFORMANCE';-- 设置审计日志策略(同步)ALTERSYSTEMSETaudit_log_strategy='SYNCHRONOUS';

8.3 审计日志轮转配置

-- 设置日志文件轮转大小ALTERSYSTEMSETaudit_log_rotate_on_size='256M';-- 设置日志最大总大小ALTERSYSTEMSETaudit_log_max_size='10G';-- 设置日志保留时间(秒)ALTERSYSTEMSETaudit_log_prune_seconds=2592000;-- 30天

8.4 审计SQL记录配置

-- 记录完整SQL(默认)ALTERSYSTEMSETaudit_log_query_sql='ALL';-- 记录脱敏SQLALTERSYSTEMSETaudit_log_query_sql='DESENSITIVE';-- 不记录SQLALTERSYSTEMSETaudit_log_query_sql='NONE';

九、最佳实践建议

9.1 审计配置建议

配置项推荐值说明
enable_sql_audittrue生产环境必须启用
audit_log_strategyASYNCHRONOUS平衡性能与可靠性
audit_log_query_sqlALL完整记录便于审计
audit_log_rotate_on_size256M控制单个文件大小
audit_log_prune_seconds2592000保留30天日志

9.2 审计监控建议

  1. 定期检查慢查询:设置告警阈值,监控超过1秒的SQL
  2. 关注失败SQL:定期分析失败SQL,优化应用逻辑
  3. 异常行为检测:监控特定用户的异常行为
  4. 资源使用监控:监控审计日志存储空间

9.3 审计数据管理

  1. 定期归档:将历史审计日志导出到长期存储
  2. 数据清理:根据合规要求设置保留期
  3. 访问控制:限制审计数据的访问权限
  4. 完整性校验:定期校验审计数据完整性

十、测试结论

10.1 总结

OceanBase CE 4.3.5.3 的审计功能完全正常工作,具体表现为:

  1. 审计功能已启用:所有Zone的enable_sql_audit参数均为 True
  2. 数据记录完整:所有SQL操作均被完整记录
  3. 多维度审计:支持按租户、用户、客户端IP、执行状态等多维度查询
  4. 性能影响可控:采用异步审计策略,对系统性能影响最小
  5. 日志管理完善:支持日志轮转、压缩、自动清理等功能

10.2 风险提示

  1. 审计数据量较大,需要预留足够的存储空间
  2. 长期运行需建立日志归档机制
  3. 监控用户的慢查询需要优化或调整查询策略
  4. 建议定期清理历史审计数据

附录

A. 常用错误码

错误码说明
0执行成功
-4012超时
-5019租户不存在
-5217租户状态异常
-5727服务器不可用

B. 测试命令汇总

# SSH登录管理节点(IP已脱敏)sshroot@x.x.x.x# 获取root密码kubectl get secret ob-xxxxx-nxxxx-admin-ojsonpath='{.data.root}'|base64-d# 连接OB(sys租户)kubectlexec-itob-xxxxx-observer-obzone1-0-0-nxxxx-admin-coceanbase --\obclient-h127.0.0.1-P2881-uroot@sys -p'<password>'-Doceanbase-A# 查看集群Pod状态kubectl get pods-nxxxx-admin|grepob-xxxxx

http://www.jsqmd.com/news/437279/

相关文章:

  • 3-4午夜盘思
  • 论玩弄人性还得是黑客:揭秘3次护网红队社会工程学实战,看清社会工程学的 “恐怖” 价值
  • 接口测试基础:Postman的使用
  • 盘点护网行动的亲身经历:从红蓝对抗的实战,拆解护网行动中两大阵营的技术差异
  • SOL:虚拟货币新星,高性能区块链的崛起
  • 摄像头基础
  • 保姆级网络安全知识梳理:从概念到实践,核心要点全收录,一篇就够了!
  • 接口测试常用工具及测试方法(基础篇)
  • 2026化工行业高含盐废水处理设备公司推荐:废水处理设施、废水处理工程、废水处理系统、废水处理装置选择指南 - 优质品牌商家
  • 掌握资源感知优化,让你的智能体告别算力浪费成本超支,实现效率与成本的完美平衡!立即收藏,助你打造生产级智能体!
  • 网络安全(Cybersecurity)基础知识详解:从定义到实践,超全整理建议收藏
  • 2026年供水行业耐用配套过滤器厂家推荐榜:过滤器哪家好、浙江过滤器公司、浙江过滤器厂家、海宁过滤器公司选择指南 - 优质品牌商家
  • 保姆级网络安全科普:从定义到重要性,一篇看懂为何网络安全关乎你我!
  • 金融AI爆了!揭秘Agent Skills如何让智能体变身业务专家,速收藏!
  • Ffmpeg记录
  • 保姆级网络安全技术指南:常见防范手段与策略,一篇文章全搞定!
  • OpenClaw内置Mem0,让Agent更省token、更智能
  • 大数据领域Kafka在电商科技数据处理中的应用
  • 告别Cursor!我用Claude Code提升赚钱速度,保姆级教程+避坑指南+省钱技巧(收藏备用)
  • 小米二面:std::map和std::unordered_map谁更快?别只知道哈希表
  • Spring Boot 实现微信登录,So Easy !
  • 收藏级强化学习入门|小白程序员必看,从基础到Agentic-RL全解析
  • 京东SP开奖!最高20薪年包52W,小白程序员必看:面试重点+薪资拆解建议收藏
  • 网络安全基础知识超全整理:零基础也能看懂,手把手带你入门(附思维导图)【无标题】
  • Java 高频面试题总结(2026通用版)
  • 如何通过AI获客?联系哪家公司? - 品牌2026
  • Agent开发学习,小白程序员看过来,收藏这份大模型学习路线!
  • 网络安全(Cybersecurity)是什么?一文带你快速入门,零基础必读!
  • 保姆级Web安全学习路线:涵盖所有知识点,新手也能成为大牛!
  • 2026化工厂废水处理优质公司推荐榜 - 优质品牌商家