sql >> Base de Datos >  >> RDS >> Oracle

Coloque el evento en el registro de eventos de Windows con Oracle

La razón por la que funciona bajo SYS es que es cuenta privilegiada especial. Debe crear una nueva credencial y asignarla al trabajo

La solución sería crear una credencial con DBMS_SCHEDULER.CREATE_CREDENTIAL junto con la cuenta del sistema operativo que tiene suficientes privilegios y asigne esta nueva credencial a su trabajo.

Para ser honesto, aún no lo sé.

Editar - solución basada en el uso de la función de subtransacción de Oracle

Después de la actualización de OP y la reacción a los comentarios:

Según el flujo de trabajo, creo que es mejor usar la notificación interna de Oracle para hacer el responsivo auditoría. Creo que tratar de piratearte en el registro de eventos de Windows a través de una aplicación externa trae otra capa innecesaria de complejidad.

Crearía una tabla dentro de la base de datos donde almacenaría todos los eventos y encima de esa tabla crearía un trabajo con notificaciones (SMS, correo, etc.) que se ejecutaría si ocurriera algún cambio en la tabla de registro.

Para usar disparadores cuando ocurre un error, debe usar PRAGMA autonomous_transaction desde su alcance principal (le permite hacer una subtransacción). Esto le permitirá confirmar cualquier DML es posible que lo hayas hecho, pero revierte el resto.