OracleDB统一审计追踪additional_info字段使用及syslog同步问题
向Oracle统一审计记录添加additional_info及syslog同步问题解答
一、如何向unified_audit_trail的additional_info字段添加信息
Oracle的unified_audit_trail表中additional_info字段默认由Oracle自动填充上下文信息(如客户端IP、OS用户、应用程序名等),若需自定义补充信息,可通过以下两种方式实现:
1. 会话级标识注入
使用DBMS_SESSION.SET_IDENTIFIER设置会话专属标识,该值会被Oracle自动写入后续审计记录的additional_info字段:
BEGIN DBMS_SESSION.SET_IDENTIFIER('自定义标记:用户HR_ADMIN执行敏感数据查询'); END; /
执行该语句后,当前会话产生的所有统一审计记录都会在additional_info中包含此标记内容。
2. 启用扩展审计选项
在创建审计策略时添加EXTENDED关键字,可让Oracle在additional_info中记录更多细节(如绑定变量值、SQL文本片段等):
-- 针对HR.EMPLOYEES表的SELECT操作启用扩展审计 AUDIT SELECT ON HR.EMPLOYEES BY ACCESS EXTENDED;
若使用细粒度审计(FGA),同样可通过指定AUDIT_TRAIL => DB+EXTENDED来触发additional_info的详细记录:
BEGIN DBMS_FGA.ADD_POLICY( OBJECT_SCHEMA => 'HR', OBJECT_NAME => 'EMPLOYEES', POLICY_NAME => 'EMP_SENSITIVE_AUDIT', AUDIT_TRAIL => DBMS_FGA.DB+DBMS_FGA.EXTENDED, AUDIT_COLUMN => 'SALARY,SSN' ); END; /
注意:Oracle未提供直接手动写入
additional_info的存储过程或配置项,该字段核心用于记录审计上下文,自定义内容需通过会话标识或扩展审计规则间接注入。
二、审计日志输出至syslog时,additional_info是否同步
是的,当配置Oracle统一审计输出到syslog时,additional_info字段的内容会被同步到syslog消息中。
配置要点
- 先启用统一审计的syslog输出:
BEGIN DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, AUDIT_TRAIL_PROPERTY => DBMS_AUDIT_MGMT.AUDIT_TRAIL_SYSLOG_ENABLE, AUDIT_TRAIL_PROPERTY_VALUE => 'TRUE' ); END; /
- 可通过
AUDIT_SYSLOG_FORMAT自定义syslog消息格式,确保additional_info被包含:
BEGIN DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, AUDIT_TRAIL_PROPERTY => DBMS_AUDIT_MGMT.AUDIT_SYSLOG_FORMAT, AUDIT_TRAIL_PROPERTY_VALUE => 'ORA_AUDIT: user=%user%, event=%event%, additional_info=%additional_info%' ); END; /
内容的提问来源于stack exchange,提问作者horokos
相关产品推荐
相关产品推荐

