oracle数据库开启审计日志功能
1 审计功能由参数 audit_trail 进行控制
取值范围及意义如下:
参数取值 说明
DB (默认)开启审计功能。
OS 将审计记录写入操作系统的一个文件
TRUE 开启审计功能。
FALSE 关闭审计功能。
NONE 关闭审计功能。
2 以 DBA 的身份登陆SQL plus
以下所有命令均在此模式下执行:
2.1 查看 audit_trail 的值
1 2 3 4 5 6 7 8 9 | SHOW PARAMETER AUDIT
NAME TYPE VALUE
audit_file_dest string /data/app/oracle/admin/orcl/ad
ump
audit_sys_operations boolean TRUE
audit_syslog_level string
audit_trail string DB
|
根据查询结果可知
已经开启数据库审计功能
2.2 执行以下语句关闭数据库审计功能
1 | ALTER SYSTEM SET AUDIT_TRAIL= 'NONE' SCOPE=SPFILE;
|
2.3 重启数据库
1 2 | shutdown immediate;
startup;
|
2.4 验证审计是否已经被关闭
1 2 3 4 5 | show parameter audit_trail
NAME TYPE VALUE
audit_trail string FALSE
|
说明:
2.5 开启审计功能
1 2 | alter system set audit_sys_operations= TRUE scope=spfile;
alter system set audit_trail=db,extended scope=spfile;
|
最后重启服务即可开启。
2.6 删除审计日志
当已形成很对日志时,可删除里面的记录,目前是直接删除,未对数据库造成影响。
查询目前的日志信息:select * FROM SYS.AUD$;
删除已有的审计信息:DELETE FROM SYS.AUD$;
或者快速删除表信息:truncate table SYS.AUD$;
一般建议部署完oracle后如不用审计功能,即关闭以节省空间。
3 开启特定用户特定表的审计
1 2 3 4 5 6 7 8 | select * from dba_audit_object
AUDIT ALL ON "c##zhangsan" .TEST2 by ACCESS;设置特定用户特定表审计
AUDIT ALL BY "c##zhangsan" BY ACCESS;
AUDIT ALL ON "c##zhangsan" .TEST2;
select * from DBA_OBJ_AUDIT_OPTS
AUDIT UPDATE ON SCOTT.EMP;
AUDIT DELETE ON SCOTT.EMP by ACCESS;
AUDIT UPDATE ON ROOT.TEST2;
|