Alterando tablespace de AUDIT e criando uma política de expurgo no 11g

This post is also available in: English

O Oracle Database 11g vêm com algumas opções de audit ligadas por default, o que pode ao longo do tempo esgotar a tablespace SYSTEM sem que o DBA perceba o porque. No entanto, esta mesma versão disponibiliza agora algumas packages DBMS que podem facilitar muito a vida do administrador que deseja migrar para outra tablespace ou alterar o período de retenção dos dados. Até a versão 10gR2, era preciso fazer essa alteração de maneira mais arcaica, que pode ser verificado no Doc ID 1019377.6 no suporte da Oracle.

Para começar, verifique se as suas opções de auditoria estão ligadas.

No meu caso, eu ativei para todas as operações do sistema e configurei para que fosse guardado também o SQL executado (DB_EXTENDED). Isso pode variar de caso a caso. Coloque os valores desejados e reinicie seu banco.

SQL> SHOW parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u02/admin/rmanbkp/adump
audit_syslog_level                   string
audit_sys_operations                 boolean     TRUE
audit_trail                          string      DB_EXTENDED

Vamos primeiro localizar em qual tablespace estão as tabelas de auditoria.

SQL> SELECT OWNER,
  2         SEGMENT_NAME,
  3         TABLESPACE_NAME
  4  FROM   DBA_SEGMENTS
  5  WHERE  SEGMENT_NAME IN ('AUD$', 'FGA_LOG$');

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

Agora vamos verificar se a infraestrutura do processo automático de expurgo do audit já foi inicializado.

SQL> SET SERVEROUTPUT ON
SQL> BEGIN
  2    IF sys.DBMS_AUDIT_MGMT.is_cleanup_initialized(sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN
  3      DBMS_OUTPUT.put_line('YES');
  4    ELSE
  5      DBMS_OUTPUT.put_line('NO');
  6    END IF;
  7  END;
  8  /

NO

SQL> SELECT PARAMETER_NAME, PARAMETER_VALUE, AUDIT_TRAIL  FROM DBA_AUDIT_MGMT_CONFIG_PARAMS;

PARAMETER_NAME                                                                   PARAMETER_VALUE                                                                  AUDIT_TRAIL
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----------------------------
DB AUDIT TABLESPACE                                                              SYSAUX                                                                           STANDARD AUDIT TRAIL
DB AUDIT TABLESPACE                                                              SYSAUX                                                                           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

Caso já tenha sido ativado, pule para a próxima etapa. Caso contrário, vamos então iniciar a infraestrutura do expurgo do audit com o intervalo de execução da limpeza (não retenção) para cada 1 dia (24 horas).

SQL> BEGIN
  2    SYS.dbms_audit_mgmt.init_cleanup(
  3      audit_trail_type         => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
  4      default_cleanup_interval => 24 /* hours */); -- PARAMETRO NAO USADO NA 11GR2 (PARA USO FUTURO)
  5  END;
  6  /

PL/SQL procedure successfully completed

Verificando novamente.

SQL> SET SERVEROUTPUT ON
SQL> BEGIN
  2    IF sys.DBMS_AUDIT_MGMT.is_cleanup_initialized(sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN
  3      DBMS_OUTPUT.put_line('YES');
  4    ELSE
  5      DBMS_OUTPUT.put_line('NO');
  6    END IF;
  7  END;
  8  /

YES

SQL> SELECT PARAMETER_NAME, PARAMETER_VALUE, AUDIT_TRAIL  FROM DBA_AUDIT_MGMT_CONFIG_PARAMS;

PARAMETER_NAME                                                                   PARAMETER_VALUE                                                                  AUDIT_TRAIL
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----------------------------
DB AUDIT TABLESPACE                                                              SYSAUX                                                                           STANDARD AUDIT TRAIL
DB AUDIT TABLESPACE                                                              SYSAUX                                                                           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

Note o aparecimento das 2 últimas linhas com o valor "DEFAULT CLEAN UP INTERVAL" de 24 horas.
O próximo passo é a criação de uma tablespace exclusiva para guardar os dados de auditoria:

SQL> CREATE TABLESPACE AUDTBS DATAFILE '/u02/oradata/ORACL/audtbs01.dbf' SIZE 128M
  2  AUTOEXTEND ON NEXT 64M MAXSIZE 2G
  3  NOLOGGING default NOCOMPRESS ONLINE PERMANENT BLOCKSIZE 8K
  4  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M SEGMENT SPACE MANAGEMENT AUTO;

Tablespace created

Agora vamos mover as tabelas AUD$ e FGA_LOG$ para a nova tablespace criada. É recomendado que estas tabelas estejam vazias para otimizar o processo. Faça um truncate se possível ou então deixe os dados e aguarde.

SQL> BEGIN
  2   SYS.DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
  3      audit_trail_type => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
  4      audit_trail_location_value => 'AUDTBS');
  5  END;
  6  /

PL/SQL procedure successfully completed

SQL>
SQL> BEGIN
  2    SYS.DBMS_AUDIT_MGMT.set_audit_trail_location(
  3      audit_trail_type           => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
  4      audit_trail_location_value => 'AUDTBS');
  5  END;
  6  /

PL/SQL procedure successfully completed

Hora de verificar se as tabelas foram realmente movidas. Verifique se os valores do parâmetro "DB AUDIT TABLESPACE" na primeira query foram alterados.

SQL> SELECT PARAMETER_NAME, PARAMETER_VALUE, AUDIT_TRAIL  FROM DBA_AUDIT_MGMT_CONFIG_PARAMS;

PARAMETER_NAME                                                                   PARAMETER_VALUE                                                                  AUDIT_TRAIL
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----------------------------
DB AUDIT TABLESPACE                                                              AUDTBS                                                                           STANDARD AUDIT TRAIL
DB AUDIT TABLESPACE                                                              AUDTBS                                                                           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

SQL>
SQL> SELECT OWNER,
  2         SEGMENT_NAME,
  3         TABLESPACE_NAME
  4  FROM   DBA_SEGMENTS
  5  WHERE  SEGMENT_NAME IN ('AUD$', 'FGA_LOG$');

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

Agora vamos criar um novo Scheduler Job que irá marcar diariamente todos os registros de auditoria anteriores a 90 dias como arquivados. Desta forma, o processo de limpeza poderá limpá-los.

SQL> BEGIN
  2    DBMS_SCHEDULER.CREATE_JOB (
  3      job_name   => 'SYS.DAILY_AUDIT_ARCHIVE_TIMESTAMP',
  4      job_type   => 'PLSQL_BLOCK',
  5      job_action => 'BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,LAST_ARCHIVE_TIME => SYSDATE-90); END;',
  6      start_date => sysdate,
  7      repeat_interval => 'FREQ=HOURLY;INTERVAL=24',
  8      enabled    =>  TRUE,
  9      comments   => 'Create an archive timestamp'
 10    );
 11  END;
 12  /

PL/SQL procedure successfully completed

Fazendo a verificação se o job foi criado.

SQL> 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%';

OWNER                          JOB_NAME                       JOB_STYLE   JOB_CREATOR                    JOB_TYPE         JOB_ACTION                                                                       START_DATE                                                                       REPEAT_INTERVAL                                                                  ENABLED STATE           SYSTEM NLS_ENV                                                                          COMMENTS
------------------------------ ------------------------------ ----------- ------------------------------ ---------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ------- --------------- ------ -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
SYS                            DAILY_AUDIT_ARCHIVE_TIMESTAMP  REGULAR     SYS                            PLSQL_BLOCK      BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_ 22/05/13 13:29:13,000000 -03:00                                                  FREQ=HOURLY;INTERVAL=24                                                          TRUE    SCHEDULED       TRUE   NLS_LANGUAGE='BRAZILIAN PORTUGUESE' NLS_TERRITORY='BRAZIL' NLS_CURRENCY='R$' NLS Create an archive timestamp

Por fim, vamos criar o processo para limpar diariamente os registros que foram marcados pelo job anterior.

SQL> BEGIN
  2    SYS.DBMS_AUDIT_MGMT.CREATE_PURGE_JOB(
  3      AUDIT_TRAIL_TYPE           => SYS.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
  4      AUDIT_TRAIL_PURGE_INTERVAL => 24 /* hours */,
  5      AUDIT_TRAIL_PURGE_NAME     => 'Daily_Audit_Purge_Job',
  6      USE_LAST_ARCH_TIMESTAMP    => TRUE
  7    );
  8  END;
  9  /

PL/SQL procedure successfully completed

Fazendo a verificação se o job foi criado.

SQL> SELECT JOB_NAME,JOB_STATUS,AUDIT_TRAIL,JOB_FREQUENCY FROM DBA_AUDIT_MGMT_CLEANUP_JOBS;

JOB_NAME                                                                         JOB_STATUS AUDIT_TRAIL                  JOB_FREQUENCY
-------------------------------------------------------------------------------- ---------- ---------------------------- --------------------------------------------------------------------------------
DAILY_AUDIT_PURGE_JOB                                                            ENABLED    STANDARD AUDIT TRAIL         FREQ=HOURLY;INTERVAL=24

SQL> 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%';

OWNER                          JOB_NAME                       JOB_STYLE   JOB_CREATOR                    JOB_TYPE         JOB_ACTION                                                                       START_DATE                                                                       REPEAT_INTERVAL                                                                  ENABLED STATE           SYSTEM NLS_ENV                                                                          COMMENTS
------------------------------ ------------------------------ ----------- ------------------------------ ---------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ------- --------------- ------ -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
SYS                            DAILY_AUDIT_ARCHIVE_TIMESTAMP  REGULAR     SYS                            PLSQL_BLOCK      BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE => DBMS_AUDIT_ 22/05/13 13:29:13,000000 -03:00                                                  FREQ=HOURLY;INTERVAL=24                                                          TRUE    SCHEDULED       TRUE   NLS_LANGUAGE='BRAZILIAN PORTUGUESE' NLS_TERRITORY='BRAZIL' NLS_CURRENCY='R$' NLS Create an archive timestamp
SYS                            DAILY_AUDIT_PURGE_JOB          REGULAR     SYS                            PLSQL_BLOCK      BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(1, TRUE);  END;                          22/05/13 13:30:13,003284 AMERICA/RECIFE                                          FREQ=HOURLY;INTERVAL=24                                                          TRUE    SCHEDULED       TRUE   NLS_LANGUAGE='BRAZILIAN PORTUGUESE' NLS_TERRITORY='BRAZIL' NLS_CURRENCY='R$' NLS Audit clean job = 'Daily_Audit_Purge_Job'

Para finalizar, recomendo remover todas as opções default da auditoria do Oracle e religá-las apenas para execuções "Whenever Successful", não catalogando comandos executados que falharam por falta de privilégios.

SQL> noaudit all;
SQL> noaudit all privileges;
SQL> noaudit exempt access policy;

Noaudit succeeded
Noaudit succeeded
Noaudit succeeded

sql> audit all by access whenever successful; -- Adiciona 27 opções de AUDIT
sql> audit alter any table by access whenever successful;
sql> audit create any table by access whenever successful;
sql> audit drop any table by access whenever successful;
sql> audit create any procedure by access whenever successful;
sql> audit drop any procedure by access whenever successful;
sql> audit alter any procedure by access whenever successful;
sql> audit grant any privilege by access whenever successful;
sql> audit grant any object privilege by access whenever successful;
sql> audit grant any role by access whenever successful;
sql> audit audit system by access whenever successful;
sql> audit create external job by access whenever successful;
sql> audit create any job by access whenever successful;
sql> audit create any library by access whenever successful;
sql> audit create public database link by access whenever successful;
sql> audit exempt access policy by access whenever successful;
sql> audit alter user by access whenever successful;
sql> audit create user by access whenever successful;
sql> audit role by access whenever successful;
sql> audit create session by access whenever successful;
sql> audit drop user by access whenever successful;
sql> audit alter database by access whenever successful;
sql> audit alter system by access whenever successful;
sql> audit alter profile by access whenever successful;
sql> audit drop profile by access whenever successful;

Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded
Audit succeeded

Verificando..

SQL> SELECT  * FROM DBA_STMT_AUDIT_OPTS order by 3;

USER_NAME                      PROXY_NAME                     AUDIT_OPTION                             SUCCESS    FAILURE
------------------------------ ------------------------------ ---------------------------------------- ---------- ----------
                                                              ALTER ANY PROCEDURE                      BY ACCESS  NOT SET
                                                              ALTER ANY TABLE                          BY ACCESS  NOT SET
                                                              ALTER DATABASE                           BY ACCESS  NOT SET
                                                              ALTER PROFILE                            BY ACCESS  NOT SET
                                                              ALTER SYSTEM                             BY ACCESS  NOT SET
                                                              ALTER USER                               BY ACCESS  NOT SET
                                                              CLUSTER                                  BY ACCESS  NOT SET
                                                              CONTEXT                                  BY ACCESS  NOT SET
                                                              CREATE ANY JOB                           BY ACCESS  NOT SET
                                                              CREATE ANY LIBRARY                       BY ACCESS  NOT SET
                                                              CREATE ANY PROCEDURE                     BY ACCESS  NOT SET
                                                              CREATE ANY TABLE                         BY ACCESS  NOT SET
                                                              CREATE EXTERNAL JOB                      BY ACCESS  NOT SET
                                                              CREATE PUBLIC DATABASE LINK              BY ACCESS  NOT SET
                                                              CREATE SESSION                           BY ACCESS  NOT SET
                                                              CREATE USER                              BY ACCESS  NOT SET
                                                              DATABASE LINK                            BY ACCESS  NOT SET
                                                              DIMENSION                                BY ACCESS  NOT SET
                                                              DIRECTORY                                BY ACCESS  NOT SET
                                                              DROP ANY PROCEDURE                       BY ACCESS  NOT SET
                                                              DROP ANY TABLE                           BY ACCESS  NOT SET
                                                              DROP PROFILE                             BY ACCESS  NOT SET
                                                              DROP USER                                BY ACCESS  NOT SET
                                                              EXEMPT ACCESS POLICY                     BY ACCESS  NOT SET
                                                              GRANT ANY OBJECT PRIVILEGE               BY ACCESS  NOT SET
                                                              GRANT ANY PRIVILEGE                      BY ACCESS  NOT SET
                                                              GRANT ANY ROLE                           BY ACCESS  NOT SET
                                                              INDEX                                    BY ACCESS  NOT SET
                                                              MATERIALIZED VIEW                        BY ACCESS  NOT SET
                                                              MINING MODEL                             BY ACCESS  NOT SET
                                                              NOT EXISTS                               BY ACCESS  NOT SET
                                                              PROCEDURE                                BY ACCESS  NOT SET
                                                              PROFILE                                  BY ACCESS  NOT SET
                                                              PUBLIC DATABASE LINK                     BY ACCESS  NOT SET
                                                              PUBLIC SYNONYM                           BY ACCESS  NOT SET
                                                              ROLE                                     BY ACCESS  NOT SET
                                                              ROLLBACK SEGMENT                         BY ACCESS  NOT SET
                                                              SEQUENCE                                 BY ACCESS  NOT SET
                                                              SYNONYM                                  BY ACCESS  NOT SET
                                                              SYSTEM AUDIT                             BY ACCESS  NOT SET
                                                              SYSTEM GRANT                             BY ACCESS  NOT SET
                                                              TABLE                                    BY ACCESS  NOT SET
                                                              TABLESPACE                               BY ACCESS  NOT SET
                                                              TRIGGER                                  BY ACCESS  NOT SET
                                                              TYPE                                     BY ACCESS  NOT SET
                                                              USER                                     BY ACCESS  NOT SET
                                                              VIEW                                     BY ACCESS  NOT SET

47 rows selected

SQL>

Pronto, agora você não precisa mais se preocupar com o crescimento descontralado da sua tablespace SYSTEM. A auditoria está isolada em uma tablespace dedicada.

Gostou? Não deixe de comentar ou deixar um 👍!

14 comentários

Pular para o formulário de comentário

  1. Rodrigo ,

    Que excelente artigo sobre expurgo de auditoria , estou implementando auditoria aqui na empresa e é exatamente isso que vou precisar , não sabia dos novos recursos do R11G.

    Muito bom !

    Valeu !!!!
    abç

    1. Obrigado!
      Grande abç!

  2. Excelente artigo,

    Estou implementando a auditoria na empresa onde trabalho e este artigo me ajudou bastante.

    Muito Obrigada!

    1. Que bom Deyse! Fico grato por ouvir isso! =]
      Abcs,
      Rodrigo

    • Carlos Roberto da Silva em setembro 8, 2016 às 17:33
    • Responder

    Rodrigo,
    Recentemente, instalamos um banco na versão 12.1.0.1.0, sendo que "The Unified Auditing" não está habilitado e "The get_stats_history_retention is 7".
    No tablespace AUDSYS, os objetos "table" CLI_SWP$21f1d8bc$1$1 and "lobsegment" SYS_LOB0000091751C00014$$ estão em constante crescimento.
    Você tem alguma dica de como limitar o crescimentos destes objetos?
    Grato,
    Carlos.

    1. Oi Carlos,
      As melhores formas de limitar são alterando a quantidade de auditoria que você gera ou aumentando a frequência e diminuindo a retenção para maiores expurgos dos dados históricos.
      Caso não seja possível, outra recomendação é exportar com alguma periodicidade os dados das tabelas de auditorias e limpá-las.
      Abcs,
      Rodrigo

  3. Muito bom.

    • Reginaldo Gomes em dezembro 26, 2017 às 16:56
    • Responder

    Rodrigo, excelente artigo sobre auditoria. Há tempos eu nao via algo tão completo.
    Uma dúvida que tenho em relação á aud$ é se eu posso aplicar a compressão OLTP nela. É recomendado ou tem algum efeito colateral?

    1. Oi Reginaldo,
      Tudo bem?
      Nunca é recomendado alterar uma tabela interna de BD ($ tables), quanto mais ao formato de compressão. Sem dúvidas a compressão OLTP, pela forma que ela é concebida, vai gerar um impacto grande nas operações de BD que geram auditoria.

      O melhor a se fazer neste caso é fazer um expurgo (diário/semanal via job) da aud$ para uma outra tabela de outro schema usando "load compress" (não OLTP).

      Abcs,
      RJ

  4. Olá Rodrigo, parabéns pelo artigo, realmente bastante completo.
    Gostaria de saber a respeito dos arquivos .aud que são gravados na pasta adump, nesse caso eles também são excluídos conforme a retenção ou só com um rm agendado no linux?
    Desde já agradeço.
    Abs.

    1. Oi Dione,
      Para arquivos aud (que são gerados caso o seu audit trail location esteja como OS ou para logins feitos com SYSDBA), eles precisam ser agendados. No entanto, em vez de executar um "rm", utilize o utilitário adrci passando como parâmetro o tempo de retenção. É mais fácil e mais seguro.
      Abraços,
      RJ

    • Herica Beccalli em agosto 5, 2019 às 17:31
    • Responder

    Olá Rodrigo!

    Parabéns pelo artigo! Muito esclarecedor!! Obrigada por compartilhar!
    Tenho uma dúvida, sobre a rotina de limpeza, tenho que fazer uma separa para a FGA_LOG$ Porque percebi que a minha tabela FGA_LOG$ não está sendo "limpa".
    Muito obrigada!

    Herica Beccalli

    1. Oi Herica, tudo bem?
      Sim, você pode fazer uma política separada ou então alterar a constante passada nos parâmetros. Dê uma neste link para ver a que tabela cada constante aponta: https://docs.oracle.com/database/121/ARPLS/d_audit_mgmt.htm#BABIDGEA
      Abcs,
      Rodrigo

    • Ronaldo em março 31, 2020 às 17:28
    • Responder

    Boa tarde. Parabens e mjuito bem detalhado . Uma duvida a mais . Possível listar os horários que essas alterações estão sendo feitas? Exemplo de gerar um relatório para ser enviado ao respons. .. Obrigado

Deixe um comentário

Seu e-mail não será publicado.