下面的trigger用于监控存储过程的更改。
创建监控表:
create table auditstoredprocedures( databasename sysname , objectname sysname , loginname sysname , changedate datetime , eventtype sysname , eventdataxml xml );
创建监控trigger:
create trigger dbtauditstoredprocedures
on database
for create_procedure, alter_procedure, drop_procedure
as
declare @eventdata xml;
set @eventdata = eventdata();
insert intoauditstoredprocedures(databasename,objectname,loginname,changedate,eventtype,eventdataxml)
values (
@eventdata.value('(/event_instance/databasename)[1]','sysname')
, @eventdata.value('(/event_instance/objectname)[1]', 'sysname')
, @eventdata.value('(/event_instance/loginname)[1]', 'sysname')
, getdate()
, @eventdata.value('(/event_instance/eventtype)[1]', 'sysname')
, @eventdata
);