create trigger ainultadminn
on database
for DDL_TABLE_EVENTS
-- DDL_DATABASE_LEVEL_EVENTS
as
begin
declare @xmldat xml
declare @event nvarchar(128)
declare @sql nvarchar(max)
set @xmldat=EVENTDATA()
set @event=isnull(@xmldat.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(128)'),'')
set @sql=isnull(@xmldat.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)'),'')
if (CURRENT_USER not in ('dbo','sa')) and (@event in ('ALTER_TABLE','DROP_TABLE'))
begin
raiserror('--- Viga: Sa tegeled vale asjaga',16,1)
rollback
end
end;
Sündmuste tüüpide kirjelduse saab siit :
http://msdn.microsoft.com/en-us/library/bb510452.aspx
Ps. DDL triggerid on toetatud alates MSSQL 2005
Soovitan ka tutvuda Logon triggeritega, ala ntx. kasutaja Karu saab siis sisselogida, kui kasutaja Mesitaru on väljas jne
Logon Triggers
Kommentaare ei ole:
Postita kommentaar