MSSQL - Триггер для аудита.
От: lppt  
Дата: 12.04.07 11:10
Оценка:
Приветствую!

Столкнулся с задачей написания триггера для аудита изменений схемы базы данных MSSQL Server 2005.
В мсдн нашел пример

CREATE TRIGGER log
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
DECLARE @data XML
SET @data = EVENTDATA()
CREATE TRIGGER
INSERT ddl_log
(PostTime, DB_User, Event, TSQL)
VALUES
(GETDATE(),
CONVERT(nvarchar(100), CURRENT_USER),
@data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)') ) ;

Все здорово, но только он не отслеживает изменения названия полей и таблиц.


т.е. после изменения типа поля, у меня появляются вот такие записи в таблице:
12.04.2007 13:32:24 dbo CREATE_TABLE CREATE TABLE dbo.Tmp_Table_1 ( key1 uniqueidentifier NULL, asdf4 ntext NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] ;
CREATE TRIGGER data


12.04.2007 13:32:24 dbo DROP_TABLE DROP TABLE dbo.Table_1 ;

Чисто логически, мне кажется, он пропустил операцию

EXEC sp_rename 'Tmp_Table_1','Table_1'

Подскажите пожалуйста, как написать триггер, который бы отлавливал все события, происходящие со структурой базы данных?

Заранее благодарен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.