audit_sys_operations必须设为true才能记录sysdba操作,该参数为静态参数,需重启生效;日志存于audit_file_dest指定的操作系统文件中,不在dba_audit_trail或unified_audit_trail中。

audit_sys_operations 必须设为 TRUE 才能记录 SYSDBA 的每条 SQL
只设 AUDIT_TRAIL = 'DB,EXTENDED' 不起作用——这是最常见的误判。Oracle 明确将特权用户(SYS、/ AS SYSDBA、SYSOPER)的审计开关和普通用户完全隔离:AUDIT_SYS_OPERATIONS 是唯一控制开关,且默认为 FALSE。
它一关,哪怕你 AUDIT ALL BY SYS 或启用统一审计策略,所有具体 SQL(如 SELECT SYSDATE FROM DUAL、ALTER SYSTEM SWITCH LOGFILE)都不会被记录。
-
AUDIT_SYS_OPERATIONS = TRUE后,所有操作强制写入操作系统文件,与AUDIT_TRAIL设置无关 - 该参数是静态参数,修改后必须重启数据库才生效:
ALTER SYSTEM SET audit_sys_operations = TRUE SCOPE = SPFILE - 验证是否生效:执行
SHOW PARAMETER audit_sys_operations,输出值必须是TRUE,不是TRUE字符串或 1
审计日志不在 DBA_AUDIT_TRAIL 里,要去 audit_file_dest 目录找 .aud 文件
查 SELECT * FROM DBA_AUDIT_TRAIL WHERE USERNAME = 'SYS' 或 SELECT * FROM UNIFIED_AUDIT_TRAIL WHERE USER_NAME = 'SYS' 都会为空——这不是查询错,而是路径根本不对。
SYSDBA 操作日志只存放在操作系统文件中,路径由 AUDIT_FILE_DEST 参数决定,典型位置如 /u01/app/oracle/admin/ORCL/adump 或旧版本的 $ORACLE_HOME/rdbms/audit。
- 用
SHOW PARAMETER audit_file_dest确认实际路径 - 进该目录后,
ls -t ora_*.aud找最新文件(文件名含 PID,如ora_12345.aud) - 用
tail -n 20 ora_*.aud查看内容,关键字段是ACTION :、PRIVILEGE : SYSDBA、STATUS: 0(0 表示成功) - 注意:每个 SYSDBA 会话独占一个 .aud 文件,不是所有记录混在一个大文件里
统一审计对 SYS 用户更可靠,但本地连接(/ AS SYSDBA)的 user_name 可能为空
如果用 Oracle 12c 及以上,优先走统一审计(Unified Auditing),它比传统审计更稳定,且不依赖 AUDIT_SYS_OPERATIONS。
但有个关键盲区:当 DBA 用 sqlplus / as sysdba 本地连接时,UNIFIED_AUDIT_TRAIL.USER_NAME 常为 NULL 或 'ORACLE',而非 'SYS'——这是 Oracle 的设计行为,不是配置失败。
- 建策略时显式指定
AUDIT POLICY sys_monitor_policy BY SYS,不要用BY ALL USERS - 查日志时加兜底条件:
client_program_name LIKE '%sqlplus%'+action_name IN ('LOGON', 'DDL', 'ALTER SYSTEM') - 配合系统级日志补全上下文:Linux 下用
auditctl监控oracle进程调用,能拿到真实 UID 和终端信息
别用 LOGON 触发器监控 SYS,它在特权路径下根本不触发
有人想写 CREATE OR REPLACE TRIGGER logon_audit AFTER LOGON ON DATABASE 来捕获 SYS 登录,这注定失败。
Oracle 对 SYS 和 / AS SYSDBA 使用独立认证路径,绕过所有常规触发器、细粒度审计(FGA)、甚至部分统一审计事件。触发器连执行机会都没有。
- 本地连接下
ORA_CLIENT_IP_ADDRESS为NULL,sys_context('USERENV', 'HOST')也不可靠 - 统一审计中的
ACTIONS LOGON是目前唯一能稳定捕获 SYS 登录动作的机制 - 真正要防的是“谁在什么时间、从哪台机器、执行了什么高危命令”,靠单点日志永远有缺口,必须 OS 层 + 数据库层 + 网络设备日志三者交叉验证











