Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Colocar evento no log de eventos do Windows com Oracle


A razão pela qual está funcionando em SYS é que é uma conta privilegiada especial. Você precisa criar uma nova credencial e mapeá-la para o trabalho

A solução seria criar uma credencial com DBMS_SCHEDULER.CREATE_CREDENTIAL juntamente com a conta do SO que tenha privilégios suficientes e atribua essa nova credencial ao seu trabalho.

Para o problema do gatilho, para ser honesto, eu ainda não sei.

Editar - solução baseada no recurso de subtransação da Oracle


Após atualização do OP e reação aos comentários:

Com base no fluxo de trabalho, acho melhor usar a notificação interna da Oracle para fazer o responsivo auditoria. Acho que tentar invadir o log de eventos do Windows por meio de um aplicativo externo está trazendo outra camada desnecessária de complexidade.

Eu criaria uma tabela dentro do DB onde armazenaria todos os eventos e em cima dessa tabela eu criaria um Job com notificações (SMS, mail, etc) que seriam executadas caso ocorresse alguma alteração na tabela de log.

Para usar acionadores quando ocorrer um erro, você deve usar PRAGMA autonomous_transaction do seu escopo principal (permite que você faça uma subtransação). Isso permitirá que você confirme qualquer DML você pode ter, mas faça uma reversão do resto.