oracle

关注公众号 jb51net

关闭
首页 > 数据库 > oracle > Oracle审计日志设置

Oracle审计日志快速设置

作者:lnwd___

Oracle数据库中的审计功能用于监控和记录数据库活动,有助于增加数据库的安全性,默认情况下,Oracle 11g会开启数据库审计功能,并将审计日志保存在SYSTEM表空间中,可能导致该表空间迅速膨胀,为了控制空间使用,可以更改审计日志的存储位置

Oracle审计日志设置

使用以下语句来更改 AUDIT_FILE_DEST 参数,以将审计日志写入 /audit_logs 目录:

ALTER SYSTEM SET AUDIT_FILE_DEST='/audit_logs' SCOPE=SPFILE;

赋予用户组

chown -R oracle:dba /audit_logs

通过sql语句将查询到的语句保存到文件中

SELECT * FROM dba_audit_trail WHERE action_name LIKE '%SQL%' 
INTO OUTFILE '/your/path/to/file.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

Oracle 11g 安装后会默认开启数据库审计功能,并且日志保存在 SYSTEM 表空间中。

导致SYSTEM 空间越来越大。当表空间已满时,会导致无法连接数据库。

建议数据库安装完成之后将此功能关闭,当需要时候再进行开启。

参数说明

审计功能由参数 audit_trail 进行控制,取值范围及意义如下:

参数取值 说明

查看审计功能是否开启

a)以 DBA 的身份登陆SQL plus ,以下所有命令均在此模式下执行;

sqlplus / as sysdba

b) 查看 audit_trail 的值

SQL> SHOW PARAMETER AUDIT
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /data/app/oracle/admin/orcl/ad
                                                 ump
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      DB

根据查询结果可知,已经开启数据库审计功能。

关闭数据库审计功能

a) 执行以下语句关闭数据库审计功能。

ALTER SYSTEM SET AUDIT_TRAIL='NONE' SCOPE=SPFILE;

b) 重启数据库

SQL> shutdown immediate;
SQL> startup;

验证审计是否已经被关闭

SQL> show parameter audit_trail

NAME TYPE VALUE

audit_trail string FALSE

说明:VALUE值为FALSE,表面审计功能为关闭的状态

开启审计功能

SQL> alter system set audit_sys_operations=TRUE scope=spfile;--审计管理用户(以sysdba/sysoper角色登陆)
SQL> alter system set audit_trail=db,extended scope=spfile; -- 这是将审计数据放入数据库中
SQL> ALTER SYSTEM SET audit_trail='xml' SCOPE=spfile; -- 这是将审计数据放入xml文件中

最后重启服务即可开启。

删除审计日志:

当已形成很对日志时,可删除里面的记录,目前是直接删除,未对数据库造成影响。

查询目前的日志信息:select * FROM SYS.AUD$;
删除已有的审计信息:DELETE FROM SYS.AUD$;

或者快速删除表信息:

truncate table SYS.AUD$;

一般建议部署完oracle后如不用审计功能,即关闭以节省空间。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文