Oracle
 sql >> Database >  >> RDS >> Oracle

Inserisci l'evento nel registro eventi di Windows con Oracle

Il motivo per cui funziona in SYS è che si tratta di un account privilegiato speciale. Devi creare una nuova credenziale e associarla al lavoro

La soluzione sarebbe creare una credenziale con DBMS_SCHEDULER.CREATE_CREDENTIAL insieme all'account del sistema operativo che dispone di privilegi sufficienti e assegna questa nuova credenziale al tuo lavoro.

A dire il vero non lo so ancora.

Modifica - soluzione basata sulla funzione di subtransazione di Oracle

Dopo l'aggiornamento dell'OP e la reazione ai commenti:

In base al flusso di lavoro, penso che sia meglio utilizzare la notifica interna di Oracle per fare il reattivo audit. Penso che provare a hackerare te stesso nel registro eventi di Windows tramite un'applicazione esterna stia portando un altro livello di complessità non necessario.

Creerei una tabella all'interno del DB in cui memorizzerei tutti gli eventi e in cima a quella tabella creerei un lavoro con le notifiche (SMS, posta, ecc.) che verrebbero eseguite se si verificano modifiche alla tabella di registro.

Per utilizzare i trigger quando si verifica un errore, dovresti utilizzare PRAGMA autonomous_transaction dal tuo ambito principale (ti consente di eseguire una sottotransazione). Ciò ti consentirà di eseguire il commit di qualsiasi DML potresti averlo fatto, ma fai un rollback per il resto.