Lauers 0 Denunciar post Postado Maio 23, 2013 Gente estou com dificuldades para fazer uma procedure para auditar todas as tabelas de uma base, mais de 10000 tabelas. Preciso saber os comandos 'SQL_TEXT'. O que eu fiz: ALTER SYSTEM SET AUDIT_TRAIL='DB_EXTENDED' SCOPE=SPFILE; Até aí tudo bem. Uso o comando: AUDIT SELECT ON NOME_DA_TABELA BY ACCESS WHENEVER SUCCESSFUL; E passo a saber os selects dados nessa tabela com o comando: SELECT ACTION_NAME, OBJ_NAME, SQL_TEXT, OS_USERNAME, USERNAME, USERHOST, TIMESTAMP FROM SYS.DBA_AUDIT_TRAIL WHERE ACTION_NAME = 'SELECT' AND SQL_TEXT NOT LIKE '%1 = 0' ORDER BY EXTENDED_TIMESTAMP DESC Mas o problema é que, como eu disse, são mais de 10000 tabelas, não da pra fazer uma por uma, mas não estou conseguindo fazer uma procedure pra fazer isso pra mim. Alguém sabe? ou até exista um modo mais simples. A minha procedure está assim: create or replace procedure test_proc() is v_nome_tabela varchar(20); cursor c1 is SELECT DISTINCT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'BASETESTE' begin open c1 loop fetch c1 into v_nome_tabela; exit when c1%notfound; AUDIT SELECT ON v_nome_tabela BY ACCESS WHENEVER SUCCESSFUL; end; Qualquer ajuda é bem vinda! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 23, 2013 Monte um script gerando comando do audit com base na tabela SELECT 'AUDIT SELECT ON ' || TABLE_NAME from SYS.USER_TABLES where TABLE_NAME not in ( SELECT OBJ_NAME FROM SYS.DBA_AUDIT_TRAIL where ACTION_NAME = 'SELECT' and SQL_TEXT not like '%1 = 0' ) gera o script, limpa algumas tabelas se for o caso e roda o bichinho, deve resolver. Compartilhar este post Link para o post Compartilhar em outros sites
Lauers 0 Denunciar post Postado Maio 23, 2013 Não é um modo "clean" pra resolver... mas resolve... vlw :D Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 23, 2013 1) ou faça uma procedure, chame o select num cursor e rode via execute immediate. 2) programas gerenciadores talvez permitam dar este grant em blobo, não sei, nunca fiz. Limpo, limpo e fazer um a um ... Compartilhar este post Link para o post Compartilhar em outros sites