Cfrme outras threads anteriores aqui do Forum mesmo, sem Auditoria habilitada 
vc só terá os controles da view DBA/ALL/USER_OBJECTS, que registra a hora em 
que foi feito um DDL mas vc ** não sabe ** só com isso quem fez o DDL, ** qual 
foi ** o DDL (ie, se foi um COMPILE, um MODIFY, ou o que foi) , etc.. Exemplo :

SCOTT:@XE:SQL>select timestamp, created, last_ddl_time from user_objects where 
object_name='EMP';

TIMESTAMP           CREATED  LAST_DDL
------------------- -------- --------
2016-12-14:23:22:31 14/12/16 14/12/16

SCOTT:@XE:SQL>desc emp
 Nome                                                                   Nulo?   
 Tipo
 ---------------------------------------------------------------------- 
-------- --------------------------------
 EMPNO                                                                  NOT 
NULL NUMBER(4)
 ENAME                                                                          
 VARCHAR2(10)
 JOB                                                                            
 VARCHAR2(9)
 MGR                                                                            
 NUMBER(4)
 HIREDATE                                                                       
 DATE
 SAL                                                                            
 NUMBER(7,2)
 COMM                                                                           
 NUMBER(7,2)
 DEPTNO                                                                         
 NUMBER(2)


SCOTT:@XE:SQL>alter table emp modify ename varchar2(12);

Tabela alterada.

SCOTT:@XE:SQL>select timestamp, created, last_ddl_time from user_objects where 
object_name='EMP';

TIMESTAMP           CREATED  LAST_DDL
------------------- -------- --------
2018-01-24:17:10:27 14/12/16 24/01/18

SCOTT:@XE:SQL>


==> No exemplo, tá marcado que alguém fez um DDL na tabela EMP depois que ele 
foi criado, mas é só... E Óbvio#2, veja que só existe UM registro pra cada 
objeto na view DBA/ALL/USER_OBJECTS, então APENAS E SOMENTE o ÚLTIMO DDL vai 
ter a data lá registrada...

 Não tem jeito, se vc quer ter uma Auditoria de DDLs propriamente dita, vc TEM 
que ativar Auditoria : seja com comando AUDIT, seja com trigger de DDL, seja 
com DBMS_FGA, seja proibindo DDLs pros usuários demais e dando pra eles acesso 
aos objetos apenas via uma API PL/SQL que faz o DDL e já Audita, não importa - 
informação de Auditoria de DDL precisa IMPLICA em ativar/criar algum tipo de 
mecanismos de Auditoria...
 
 []s
 
   Chiappa

Responder a