Oracle 11g默认开启了标准审计功能,主要审计登录失败、登录成功、SYS用户操作和DDL操作等关键事件。通过查看V$SESSION和DBA_AUDIT_TRAIL视图,可以轻松追踪这些审计记录,实现数据库安全监控的基本需求。
默认审计设置详解
在Oracle 11g中,默认审计策略由AUDIT_SYS_OPERATIONS参数控制,默认值为TRUE,这会审计所有SYS用户的操作记录到操作系统审计文件OS_AUDIT;同时,标准审计默认开启了CONNECT、DBA、DELETE TABLE、EXECUTE PROCEDURE、GRANT、INSERT TABLE、SELECT TABLE、UPDATE TABLE等对象的审计,这些记录保存在SYS.AUD$表中,可通过DBA_AUDIT_TRAIL视图查询。
查看默认审计记录
要查看默认审计记录,可以执行以下SQL:SELECT username, action_name, timestamp, returncode FROM dba_audit_trail WHERE username='SYS' ORDER BY timestamp DESC; 这将列出SYS用户的最近操作,帮助管理员快速定位安全事件。
审计文件位置和清理
默认审计文件位于$ORACLE_BASE/diag/rdbms/dbname/trace/adump目录下,文件名为alert_dbname.log和类似audit文件。定期清理可以通过DELETE FROM sys.aud$ WHERE obj$creator IS NULL AND obj$name IS NULL AND action#=100等语句执行,但需谨慎操作以防丢失重要记录。
增强默认审计配置
虽然默认审计已覆盖基本场景,但网友推荐进一步设置AUDIT_TRAIL=DB,EXTENDED参数,并执行AUDIT SESSION WHENEVER SUCCESSFUL; AUDIT ALL BY SYS; 来加强审计粒度,确保所有会话和SYS操作都被完整记录。
常见问题排查
如果审计记录为空,检查AUDIT_SYS_OPERATIONS是否为TRUE,重启数据库生效;登录失败不记录时,确保AUDIT_TRAIL参数不为NONE。网友分享经验:使用UNIFIED AUDIT从11gR2起更强大,但默认仍依赖传统审计。
安全最佳实践
结合默认审计与Oracle Fine-Grained Auditing(FGA),可实现条件触发审计,如对敏感表的SELECT操作设置策略:BEGIN DBMS_FGA.ADD_POLICY(object_schema=>'SCOTT', object_name=>'EMP', policy_name=>'EMP_SELECT'); END; 这被誉为数据库安全必备组合。
FAQ
Q: Oracle 11g默认审计哪些操作?
A: 默认审计登录成功/失败、SYS操作、基本DDL/DML如SELECT/INSERT/UPDATE/DELETE。
Q: 如何关闭默认审计?
A: 设置AUDIT_TRAIL=NONE并重启数据库,但不推荐以防安全风险。
Q: 审计记录存储在哪里?
A: SYS.AUD$表或操作系统文件adump目录。
Q: 如何清理审计表?
A: 使用TRUNCATE TABLE sys.aud$或删除旧记录SQL,备份后再操作。