Создание глобального триггера, который прослушивает несколько таблиц

Я хочу создать глобальный триггер в Oracle 11g. Который можно использовать для аудита около 100 таблиц. Могут ли несколько таблиц запускать один триггер. Если да, то как я могу этого добиться?


person Ravindra Singh Shekhawat    schedule 19.01.2012    source источник


Ответы (1)


Я хочу создать глобальный триггер в oracle 11g, который можно использовать для аудита около 100 таблиц.

Есть ли причина, по которой вы хотите изобрести велосипед? Почему бы не использовать встроенный аудит Oracle?

Oracle Base предоставляет базовую информацию о том, как начать работу с аудитом:

Аудит можно включить, задав статический параметр AUDIT_TRAIL, который имеет следующие допустимые значения.

AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }

В следующем списке представлено описание каждой настройки:

none or false - Auditing is disabled.
db or true - Auditing is enabled, with all audit records stored in the database audit trial (SYS.AUD$).
db,extended - As db, but the SQL_BIND and SQL_TEXT columns are also populated.
xml- Auditing is enabled, with all audit records stored as XML format OS files.
xml,extended - As xml, but the SQL_BIND and SQL_TEXT columns are also populated.
os- Auditing is enabled, with all audit records directed to the operating system's audit trail.

Чтобы включить аудит в журнале аудита базы данных, включите аудит в БД.

SQL> ALTER SYSTEM SET audit_trail=db,extended SCOPE=SPFILE;

System altered.

Выключить и перезапустить БД

SQL> SHUTDOWN
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
ORACLE instance started.

Теперь для аудита SELECTS, INSERTS, UPDATES, DELETES пользователем cube сделайте следующее:

CONNECT sys/password AS SYSDBA

AUDIT ALL BY cube BY ACCESS;
AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY cube BY ACCESS;

Журналы аудита можно вызвать, запросив DBA_AUDIT_TRAIL

Дальнейшее чтение:

person Sathyajith Bhat    schedule 19.01.2012