Создание глобального триггера, который прослушивает несколько таблиц
Я хочу создать глобальный триггер в Oracle 11g. Который может быть использован для аудита около 100 таблиц. Может ли несколько таблиц запустить один триггер. Если да, то как мне этого добиться?
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
Дальнейшее чтение: