2013-04-11 2 views
0

Предположим, что в базе данных имеется n количество таблиц. Независимо от того, какая вставка, обновление, удаление происходит из любой таблицы в базе данных, должны быть записаны в таблицу под названием «Audit_Trail», где у нас есть следующие столбцы в таблицах аудита.Триггер уровня системы в команде DML в PLSQL

Имя_Сервера AT_date AT_time TABLE_NAME column_name Действие old_value new_value

Сервер, на котором стол, на котором столбец, на котором дата и время нужно быть захвачены. Кроме того, столбец «Действие» отслеживает, является ли действие вставкой, обновлением или удалением, и мы также должны фиксировать старое значение и новое значение.

Так что это лучший способ сделать это? Можем ли мы создать триггер уровня базы данных, который может запускать триггер при любой вставке, обновлении или удалении?

ответ

0

Лучшим способом было бы использовать собственные функции аудита Oracle.

AUDIT ALL ON DEFAULT BY ACCESS; 

http://docs.oracle.com/cd/E11882_01/network.112/e36292/auditing.htm#DBSEG392

В ответ на комментарий ...

Там нет ничего необычного в желании провести аудит всех изменений, внесенных в таблицы в базе данных - значит, уже есть функциональные возможности, предоставляемые в системе для этого. Лучше использовать триггеры, потому что его нельзя обойти как легко. Однако, если вы хотите использовать эту предустановленную, надежную и простую в использовании функциональность, вам может потребоваться немного скомпрометировать ваши специфические требования, но выигрыш будет превосходным решением, которое будет использовать код и конфигурацию вместе с тысячами других Системы Oracle.

+0

Предположим, что в базе данных имеется n количество таблиц. Независимо от того, какая вставка, обновление, удаление происходит из любой таблицы в базе данных, должны быть записаны в таблицу под названием «Audit_Trail», где у нас есть следующие столбцы в таблицах аудита. Я хочу таким образом, я не могу, если я могу получить все детали в одну отдельную таблицу. Имя_сервера AT_date AT_time Имя_таблицы Column_name Действие Old_value New_Value – user2001117

+0

, что можно сделать на уровне dba – user2001117

+0

ok i wil проверьте ссылку и вернитесь к вам. – user2001117

Смежные вопросы