I want to audit DML statements coming from other places than application user "tomcat" (OS_USER attribute). I want to focus only on developers or support team changing data in any way.

DML Trigger doesn't log exact query which was executed, just query type (INSERT, UPDATE, DELETE).

With straightforward usage of FGA I cannot filter out application user "tomcat". I am familiar with those questions:

Oracle auditing on specific user activity

Can this be accomplished with Oracles Fine Grained Auditing?

but information is logged in trace files, viewing which requires more effort, and I would like auditing to be accessed by dictionary view. Is it possible?

1 Answer 1


I helped my self with this:

      ... ,
      audit_condition => 'SYS_CONTEXT(''USERENV'',''OS_USER'') <> ''tomcat''',

Predicate also works with NOT IN ( 'tomcat' ).

But for multiple items in list NOT IN ( 'tomcat', 'oracle' ) or SYS_CONTEXT('USERENV','OS_USER') <> 'tomcat' OR SYS_CONTEXT('USERENV','OS_USER') <> 'oracle' it fails with:

ORA-28138: Error in Policy Predicate

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.