|
По материалам статьи Robert Marda на sqlservercentral.com: Auditing Through Triggers В этой статье Роберт приводит примеры кода для нескольких триггеров, устанавливаемых на таблицы в целях аудита действий пользователей с записями MS SQL Server 7.0/2000. Для пояснения работы триггеров вообще и как они работают в SQL Server 7.0 и SQL Server 2000, Вы можете обратиться к следующим статьям, написанным Брайеном Келлей (Brian Kelley): Triggers
in SQL Server 7.0 and 2000 - The Common Ground Первая статья объясняет назначение специальных таблиц для
вставки и удаления (inserted and deleted
Tables). CREATE TABLE [Components] ( Триггер, отслеживающий операции Insert/Update Один из самых простых способов применения триггера, это когда он срабатывает всякий раз, когда в таблице модифицируется любой столбец или всякий раз, когда вставляется строка. Следующий скрипт может быть выполнен в Query Analyzer для создания триггера, который фиксирует время, когда строка была вставлена или модифицирована и имя пользователя, который сделал это изменение: CREATE TRIGGER updatedby ON dbo.Components Для проверки работы триггера вставьте несколько строк в
таблицу Components и затем внесите изменения в одну или две
строки. ALTER TRIGGER updatedby ON dbo.Components Проверьте работу изменённого триггера, изменив значения в столбце Comments, затем в столбце SerialNumber. Триггер, отслеживающий операции удаления Если Вы хотите фиксировать удаления из таблицы, можете воспользоваться примером триггера, который будет вставлять строку в ComponentsDeleted всякий раз, когда строка будет удалена из таблицы Components:CREATE TRIGGER deletedby ON dbo.Components Удалите одну или две строки из таблицы Components. Теперь посмотрите таблицу ComponentsDeleted, и Вы увидите там удаленные Вами строки с датой и временем того, когда они были удалены. Установка простой системы аудита, использующей триггеры, примеры которых представлены в этой статье, может быть полезной в тех случаях, когда Вам необходимо знать, кто и когда выполнил отслеживаемые триггерами действия в вашей базе данных.
|
Перевод: Александра Гладченко 2002г. |