[20170207]11G审计日志清除.txt

简介: [20170207]11G审计日志清除.txt --//11G缺省打开了许多审计,比如登录审计(我个人建议仅仅审计不成功的登录,特别对登录密集的系统),如果系统上线时没有关闭或者取 --//消一些审计,sys.

[20170207]11G审计日志清除.txt

--//11G缺省打开了许多审计,比如登录审计(我个人建议仅仅审计不成功的登录,特别对登录密集的系统),如果系统上线时没有关闭或者取
--//消一些审计,sys.aud$在system表空间,会导致空间异常增加,而且占用system表空间不是很合理.必须建立良好的监测清理机制.

1.环境:

SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> show parameter audit
NAME                  TYPE     VALUE
--------------------- -------- --------------------------------
audit_file_dest       string   /u01/app/oracle/admin/book/adump
audit_sys_operations  boolean  FALSE
audit_syslog_level    string
audit_trail           string   DB, EXTENDED
--//这是安装完成后缺省设置.

SYS@book> select count(*) from sys.aud$;
  COUNT(*)
----------
      1049
--//我的测试环境,已经关闭登录审计,仅仅审计不成功的登录.

2.移动SYS.AUD$ ,SYS.FGA_LOG$到别的表空间:
SYS@book> SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME FROM   DBA_SEGMENTS WHERE  SEGMENT_NAME IN ('AUD$', 'FGA_LOG$');

OWNER  SEGMENT_NAME         TABLESPACE_NAME
------ -------------------- ------------------------------
SYS    FGA_LOG$             SYSTEM
SYS    AUD$                 SYSTEM

--以sys用户执行:
BEGIN
  DBMS_AUDIT_MGMT.set_audit_trail_location(
    audit_trail_type           => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
    audit_trail_location_value => 'users');
END;
/

--//注意如果aud$占用空间很大,执行上述命令很慢.可以先在执行前做一些清理工作.
--//我这里是测试环境,仅仅移动到users,个人建议建立单独的表空间来保持这些审计信息.

ALTER USER SYS QUOTA UNLIMITED ON users;

--说明:
The AUDIT_TRAIL_TYPE parameter is specified using one of three constants.
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD: Standard audit trail (AUD$).
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD: Fine-grained audit trail (FGA_LOG$).
DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD: Both standard and fine-grained audit trails.
----------

SYS@book> SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME FROM   DBA_SEGMENTS WHERE  SEGMENT_NAME IN ('AUD$', 'FGA_LOG$');
OWNER  SEGMENT_NAME         TABLESPACE_NAME
------ -------------------- ------------------------------
SYS    FGA_LOG$             USERS
SYS    AUD$                 USERS

3.设置清理的初始化工作:
--//任由日志文件增加不是很合理,必须建立合理的清除机制,而oracle缺省并没有做清理的初始化工作:
SET SERVEROUTPUT ON
BEGIN
  IF sys.DBMS_AUDIT_MGMT.is_cleanup_initialized(sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN
    DBMS_OUTPUT.put_line('YES');
  ELSE
    DBMS_OUTPUT.put_line('NO');
  END IF;
END;
/
NO
PL/SQL procedure successfully completed.

--//返回NO,说明没有做清理的初始化工作.

SYS@book> SELECT *  FROM DBA_AUDIT_MGMT_CONFIG_PARAMS;
PARAMETER_NAME                 PARAMETER_VALUE      AUDIT_TRAIL
------------------------------ -------------------- ----------------------------
DB AUDIT TABLESPACE            USERS                STANDARD AUDIT TRAIL
DB AUDIT TABLESPACE            USERS                FGA AUDIT TRAIL
AUDIT FILE MAX SIZE            10000                OS AUDIT TRAIL
AUDIT FILE MAX SIZE            10000                XML AUDIT TRAIL
AUDIT FILE MAX AGE             5                    OS AUDIT TRAIL
AUDIT FILE MAX AGE             5                    XML AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE      10000                STANDARD AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE      10000                FGA AUDIT TRAIL
OS FILE CLEAN BATCH SIZE       1000                 OS AUDIT TRAIL
OS FILE CLEAN BATCH SIZE       1000                 XML AUDIT TRAIL
10 rows selected.

--//定义24小时执行1次清理.
BEGIN
  SYS.dbms_audit_mgmt.init_cleanup(
    audit_trail_type         => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
    default_cleanup_interval => 24 /* hours */); -- PARAMETER NOT USED ON 11GR2 (FUTURE USE)
END;
/

SET SERVEROUTPUT ON
BEGIN
  IF sys.DBMS_AUDIT_MGMT.is_cleanup_initialized(sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN
    DBMS_OUTPUT.put_line('YES');
  ELSE
    DBMS_OUTPUT.put_line('NO');
  END IF;
END;
/

YES
PL/SQL procedure successfully completed.

--//返回YES,说明已经做清理的初始化工作.

SYS@book> SELECT *  FROM DBA_AUDIT_MGMT_CONFIG_PARAMS;
PARAMETER_NAME                 PARAMETER_VALUE      AUDIT_TRAIL
------------------------------ -------------------- ----------------------------
DB AUDIT TABLESPACE            USERS                STANDARD AUDIT TRAIL
DB AUDIT TABLESPACE            USERS                FGA AUDIT TRAIL
AUDIT FILE MAX SIZE            10000                OS AUDIT TRAIL
AUDIT FILE MAX SIZE            10000                XML AUDIT TRAIL
AUDIT FILE MAX AGE             5                    OS AUDIT TRAIL
AUDIT FILE MAX AGE             5                    XML AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE      10000                STANDARD AUDIT TRAIL
DB AUDIT CLEAN BATCH SIZE      10000                FGA AUDIT TRAIL
OS FILE CLEAN BATCH SIZE       1000                 OS AUDIT TRAIL
OS FILE CLEAN BATCH SIZE       1000                 XML AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL      24                   STANDARD AUDIT TRAIL
DEFAULT CLEAN UP INTERVAL      24                   FGA AUDIT TRAIL
12 rows selected.
--//看最后2行DEFAULT CLEAN UP INTERVAL,DEFAULT CLEAN UP INTERVAL.已经定义了清理间隔时间.

4.建立schedule,清理日志:
--//oracle处理这些问题的机制有点繁琐,首先是标记那些需要clean,然后交由清除程序处理.

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
    job_name   => 'SYS.DAILY_AUDIT_ARCHIVE_TIMESTAMP',
    job_type   => 'PLSQL_BLOCK',
    job_action => 'BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,LAST_ARCHIVE_TIME => SYSDATE-30); END;',
    start_date => sysdate,
    repeat_interval => 'FREQ=HOURLY;INTERVAL=24',
    enabled    =>  TRUE,
    comments   => 'Create an archive timestamp'
  );
END;
/
--//每个小时检查1次,标记30天前的日志.一些参数可以根据需要自己调整.我自己的测试保留30天.建议生产系统保留100天或者半年.

$ cd /u01/app/oracle/admin/book/adump
$ ls -ltr
total 388
-rw-r----- 1 oracle oinstall  795 2016-12-09 09:03:07 book_s000_64359_20161209090307799573143795.aud
-rw-r----- 1 oracle oinstall  795 2016-12-16 09:06:47 book_s000_49594_20161216090647626121143795.aud
-rw-r----- 1 oracle oinstall  795 2017-01-09 09:11:32 book_s000_57001_20170109091132668817143795.aud
-rw-r----- 1 oracle oinstall  784 2017-01-18 16:11:12 book1_ora_40227_20170118161112745444143795.aud
-rw-r----- 1 oracle oinstall  778 2017-01-18 16:11:12 book1_ora_40185_20170118161112689635143795.aud
-rw-r----- 1 oracle oinstall  981 2017-01-18 16:12:04 book1_ora_40237_20170118161156064475143795.aud
...

--//检查schedule是否启动.
SYS@book> @ &r/pt2 'SELECT OWNER,JOB_NAME,JOB_STYLE,JOB_CREATOR,JOB_TYPE,JOB_ACTION,START_DATE,REPEAT_INTERVAL,ENABLED,STATE,SYSTEM,NLS_ENV,COMMENTS FROM dba_scheduler_jobs WHERE job_name LIKE ''%AUDIT%'''
old   6:     from table(xmlsequence(cursor( &1 )))
new   6:     from table(xmlsequence(cursor( SELECT OWNER,JOB_NAME,JOB_STYLE,JOB_CREATOR,JOB_TYPE,JOB_ACTION,START_DATE,REPEAT_INTERVAL,ENABLED,STATE,SYSTEM,NLS_ENV,COMMENTS FROM dba_scheduler_jobs WHERE job_name LIKE '%AUDIT%' )))
ROW_NUM    COL_NUM COL_NAME        COL_VALUE
------- ---------- --------------- ----------------------------------------------------------------------------------------------------
      1          1 OWNER           SYS
                 2 JOB_NAME        DAILY_AUDIT_ARCHIVE_TIMESTAMP
                 3 JOB_STYLE       REGULAR
                 4 JOB_CREATOR     SYS
                 5 JOB_TYPE        PLSQL_BLOCK
                 6 JOB_ACTION      BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD
                 7 START_DATE      2017-02-07 10:06:40.000000 +08:00
                 8 REPEAT_INTERVAL FREQ=HOURLY;INTERVAL=24
                 9 ENABLED         TRUE
                10 STATE           SCHEDULED
                11 SYSTEM          TRUE
                12 NLS_ENV         NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENCY='AMERICA' NLS_NUME
                13 COMMENTS        Create an archive timestamp
13 rows selected.)

--//建立清理程序:
BEGIN
  SYS.DBMS_AUDIT_MGMT.CREATE_PURGE_JOB(
    AUDIT_TRAIL_TYPE           => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
    AUDIT_TRAIL_PURGE_INTERVAL => 24 /* hours */,
    AUDIT_TRAIL_PURGE_NAME     => 'Daily_Audit_Purge_Job',
    USE_LAST_ARCH_TIMESTAMP    => TRUE
  );
END;
/

--//检查schedule是否建立.
SYS@book> SELECT JOB_NAME,JOB_STATUS,AUDIT_TRAIL,JOB_FREQUENCY FROM DBA_AUDIT_MGMT_CLEANUP_JOBS;
JOB_NAME              JOB_STAT AUDIT_TRAIL           JOB_FREQUENCY
--------------------- -------- --------------------- ------------------------
DAILY_AUDIT_PURGE_JOB ENABLED  STANDARD AUDIT TRAIL  FREQ=HOURLY;INTERVAL=24

SYS@book> @ &r/pt2 'SELECT OWNER,JOB_NAME,JOB_STYLE,JOB_CREATOR,JOB_TYPE,JOB_ACTION,START_DATE,REPEAT_INTERVAL,ENABLED,STATE,SYSTEM,NLS_ENV,COMMENTS FROM dba_scheduler_jobs WHERE job_name LIKE ''%AUDIT%'''
old   6:     from table(xmlsequence(cursor( &1 )))
new   6:     from table(xmlsequence(cursor( SELECT OWNER,JOB_NAME,JOB_STYLE,JOB_CREATOR,JOB_TYPE,JOB_ACTION,START_DATE,REPEAT_INTERVAL,ENABLED,STATE,SYSTEM,NLS_ENV,COMMENTS FROM dba_scheduler_jobs WHERE job_name LIKE '%AUDIT%' )))
ROW_NUM    COL_NUM COL_NAME        COL_VALUE
------- ---------- --------------- ----------------------------------------------------------------------------------------------------
      1          1 OWNER           SYS
                 2 JOB_NAME        DAILY_AUDIT_ARCHIVE_TIMESTAMP
                 3 JOB_STYLE       REGULAR
                 4 JOB_CREATOR     SYS
                 5 JOB_TYPE        PLSQL_BLOCK
                 6 JOB_ACTION      BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD
                 7 START_DATE      2017-02-07 10:06:40.000000 +08:00
                 8 REPEAT_INTERVAL FREQ=HOURLY;INTERVAL=24
                 9 ENABLED         TRUE
                10 STATE           SCHEDULED
                11 SYSTEM          TRUE
                12 NLS_ENV         NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENCY='AMERICA' NLS_NUME
                13 COMMENTS        Create an archive timestamp
      2          1 OWNER           SYS
                 2 JOB_NAME        DAILY_AUDIT_PURGE_JOB
                 3 JOB_STYLE       REGULAR
                 4 JOB_CREATOR     SYS
                 5 JOB_TYPE        PLSQL_BLOCK
                 6 JOB_ACTION      BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(1, TRUE);  END;
                 7 START_DATE      2017-02-07 10:10:39.837281 +08:00
                 8 REPEAT_INTERVAL FREQ=HOURLY;INTERVAL=24
                 9 ENABLED         TRUE
                10 STATE           SCHEDULED
                11 SYSTEM          TRUE
                12 NLS_ENV         NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENCY='AMERICA' NLS_NUME
                13 COMMENTS        Audit clean job = 'Daily_Audit_Purge_Job'
26 rows selected.)

--//这样就不必要困惑aud$异常增加,以及审计目录下存在许多文件.

SYS@book> select count(*) from sys.aud$;
  COUNT(*)
----------
       513
--//现在已经删除了一部分数据.

5.补充关闭登录登录的命令:

NOAUDIT CREATE SESSION WHENEVER SUCCESSFUL;

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
EMQ
|
2月前
|
JSON 安全 API
EMQX Enterprise 5.3 发布:审计日志、Dashboard 访问权限控制与 SSO 一站登录
EMQX Enterprise 5.3.0 版本已正式发布! 新版本带来多个企业特性的更新,包括审计日志,Dashboard RBAC 权限控制,以及基于 SSO(单点登录)的一站式登录,提升了企业级部署的安全性、管理性和治理能力。此外,新版本还进行了多项改进以及 BUG 修复,进一步提升了整体性能和稳定性。
EMQ
286 0
|
4月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
256 0
|
4月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|apiserver审计日志的开启
云原生|kubernetes|apiserver审计日志的开启
50 0
|
5月前
|
SQL 关系型数据库 MySQL
微服务轮子项目(15) -审计日志
微服务轮子项目(15) -审计日志
47 0
|
8月前
|
存储 监控 安全
网络安全之认识日志采集分析审计系统
日志对于大家来说非常熟悉,机房中的各种系统、防火墙、交换机、路由器等等,都在不断地产生日志。无数实践告诉我们,健全的日志记录和分析系统是系统正常运营与优化以及安全事故响应的基础。我们一起来认识日志采集分析审计系统。
223 0
|
8月前
|
存储 运维 监控
mysql开启审计日志
mysql开启审计日志
330 0
|
10月前
|
SQL Oracle 关系型数据库
rman备份产生800G的审计日志(select action from gv$session )
一个客户反映,我们的备份软件在备份过程中产生了大量审计日志,多大800多G,把根分区都塞满了,日志里面都是下面这条SQL:
|
11月前
|
SQL 存储 监控
从Zabbix数据库入手,获取更详细的审计日志
从Zabbix数据库入手,获取更详细的审计日志
264 0
|
存储 运维 监控
一键式开启:IDaaS日志接入SLS日志审计发布
本文主要介绍IDaaS EIAM两种日志(管理操作+用户行为)接入SLS日志审计的最佳实践
|
SQL 监控 安全
【笔记】用户指南—诊断与优化—SQL审计与分析—日志报表
PolarDB-X 支持SQL审计与分析功能,依托日志服务,提供了运营中心、性能中心、安全中心等开箱即用的报表,方便您快速查看了解PolarDB-X数据库的执行状况、性能指标、潜在安全问题等情况。
122 0
【笔记】用户指南—诊断与优化—SQL审计与分析—日志报表

热门文章

最新文章