Boa tarde,
Gostaria de criar uma auditoria em que cada comando DDL do usuário fosse auditado, e que armazenasse a query que foi utilizada. alguém pode me ajudar por favor.
Auditoria
- heraldoaraujo
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Dom, 19 Fev 2012 12:10 pm
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Heraldo,
O Audit_Trail do banco Oracle não te atende ?
Por Default ele vem habilitado no banco e você consegue verificar os DDL com o select abaixo.
Senão você terá que fazer trigger nas tabelas que você quer auditar para guardar os ddls em tabelas de LOGs, aí e mais complicado.
Espero ter ajudado.
O Audit_Trail do banco Oracle não te atende ?
Por Default ele vem habilitado no banco e você consegue verificar os DDL com o select abaixo.
select * from DBA_AUDIT_OBJECT WHERE OBJ_NAME LIKE 'GA_%'
AND ACTION_NAME = 'ALTER TABLE' order by 5 desc
SELECT * FROM DBA_COMMON_AUDIT_TRAIL
WHERE STATEMENT_TYPE LIKE '%ALTER TABLE%'
ORDER BY 6 DESC
Espero ter ajudado.
- fbifabio
- Moderador
- Mensagens: 199
- Registrado em: Ter, 22 Fev 2011 1:51 pm
- Localização: São Paulo - SP
- Contato:
Fábio Prado
www.fabioprado.net
www.fabioprado.net
Um ponto que é muito importante e vejo que muita gente não sabe é que ao habilitar auditoria você estará consumindo recursos extras do BD e consequentemente degradando a performance das instruções SQL sendo auditadas e do BD como um todo.
Para mais informações leia o artigo http://www.fabioprado.net/2013/01/audit ... racle.html.
[]s
Para mais informações leia o artigo http://www.fabioprado.net/2013/01/audit ... racle.html.
[]s
-
- Rank: Estagiário Sênior
- Mensagens: 8
- Registrado em: Sex, 12 Out 2012 11:26 am
- Localização: Santa ROSA
- Contato:
Cristiano Schmitt
Administrador de Banco de Dados e Tecnologia
Administrador de Banco de Dados e Tecnologia
ola você pode usar uma solução via trigger.
comando para criação da tabela que vai guardar os dados auditados
comando para criar a trigger que audita os objetos.
comando para criação da tabela que vai guardar os dados auditados
CREATE TABLE ddl_log (
operation VARCHAR2(30),
obj_owner VARCHAR2(30),
object_name VARCHAR2(30),
sql_text VARCHAR2(64),
attempt_by VARCHAR2(30),
attempt_dt DATE);
comando para criar a trigger que audita os objetos.
CREATE OR REPLACE TRIGGER ddl_trigger
BEFORE CREATE OR ALTER OR DROP
ON SCHEMA
DECLARE
oper ddl_log.operation%TYPE;
sql_text ora_name_list_t;
i PLS_INTEGER;
BEGIN
SELECT ora_sysevent
INTO oper
FROM DUAL;
i := sql_txt(sql_text);
IF oper IN ('CREATE', 'DROP') THEN
INSERT INTO ddl_log
SELECT ora_sysevent, ora_dict_obj_owner,
ora_dict_obj_name, sql_text(1), USER, SYSDATE
FROM DUAL;
ELSIF oper = 'ALTER' THEN
INSERT INTO ddl_log
SELECT ora_sysevent, ora_dict_obj_owner,
ora_dict_obj_name, sql_text(1), USER, SYSDATE
FROM sys.gv_$sqltext
WHERE UPPER(sql_text) LIKE 'ALTER%'
AND UPPER(sql_text) LIKE '%NEW_TABLE%';
END IF;
END ddl_trigger;
/
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 18 visitantes