Descobrir quem criou uma trigger no oracle

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
headtechdev
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Ter, 17 Ago 2021 11:52 am
Localização: Jundiaí

Olá pessoal, tenho duas duvidas a 1ª É possível descobrir qual o nome do usuário que criou uma trigger? Exemplo, fiz login na minha conta do windows abri o PL/SQL com a senha do sysdba no banco e criei uma trigger. É possível afirmar que fui eu quem criou essa trigger pelo usuário do windows?

2ª É possível criar uma trigger ou procedure que em tempo de execução dependendo de algum valor de variável ela se auto drop?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

O que você quer não existe nativamente.
Mas pode ser facilmente criado. Pra isso, você usa DDL Triggers.
Por exemplo: cria uma trigger AFTER CREATE. Dentro dela, você pode capturar o nome do usuário do Windows via V$SESSION. Daí basta gravar isso em alguma tabela sua de auditoria.
Acho que tem como usar USERENV pra pegar o usuário do Windows: viewtopic.php?t=35


Aqui tem um link os eventos possíveis:
https://www.morganslibrary.org/referenc ... igger.html

O mesmo vale pra sua segunda pergunta. Pode usar EXECUTE IMMEDIATE e dropar o objeto assim que ele satisfazer alguma condição.

Outra coisa que existe é o AUDIT do Oracle, como nesse exemplo: viewtopic.php?f=6&t=9247&p=36701
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes