You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 12c统一审计如何查看SQL语句的参数值?

Oracle 12c统一审计查看绑定变量实际值的方法

默认情况下,Oracle 12c的统一审计(Unified Auditing)不会捕获SQL语句中的绑定变量实际值,仅记录带占位符的SQL文本。要查看这些参数值,可通过以下方式实现:

  • 修改审计策略,启用绑定变量捕获
    创建或修改审计策略时,添加INCLUDE BINDINGS子句,让审计日志记录绑定变量的值:

    • 新建策略示例:
      CREATE AUDIT POLICY audit_customer_tables
      ACTIONS SELECT, INSERT, UPDATE, DELETE ON customer, orders -- 替换为你需要审计的表
      INCLUDE BINDINGS;
      
    • 修改已有策略示例:
      ALTER AUDIT POLICY existing_audit_policy INCLUDE BINDINGS;
      
  • 解析审计日志中的绑定变量值
    启用绑定捕获后,UNIFIED_AUDIT_TRAIL视图的BINDINGS列会以XMLType格式存储绑定变量数据。可通过XML函数解析获取实际值:

    • 单绑定变量场景查询:
      SELECT sql_text,
             EXTRACTVALUE(bindings, '/bindings/binding/value') AS bind_value
      FROM unified_audit_trail
      WHERE object_name IN ('CUSTOMER') -- 目标表名
        AND sql_text LIKE '%customer_id = :%';
      
    • 多绑定变量场景查询(用XMLTABLE批量解析):
      SELECT uat.sql_text,
             x.bind_name,
             x.bind_value
      FROM unified_audit_trail uat,
           XMLTABLE('/bindings/binding'
                    PASSING uat.bindings
                    COLUMNS bind_name VARCHAR2(30) PATH '@name',
                            bind_value VARCHAR2(200) PATH 'value') x
      WHERE uat.object_name IN ('CUSTOMER', 'ORDERS');
      

注意:启用绑定变量捕获会增加审计日志的存储开销,同时可能对系统性能产生轻微影响,建议在生产环境中评估后再启用。

内容的提问来源于stack exchange,提问作者Landon Statis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:04:59