SQL Server中使用Trigger监控存储过程更改脚本实例
下面的Trigger用于监控存储过程的更改。
创建监控表:
CREATETABLEAuditStoredProcedures( DatabaseNamesysname ,ObjectNamesysname ,LoginNamesysname ,ChangeDatedatetime ,EventTypesysname ,EventDataXmlxml );
创建监控Trigger:
CREATETRIGGERdbtAuditStoredProcedures
ONDATABASE
FORCREATE_PROCEDURE,ALTER_PROCEDURE,DROP_PROCEDURE
AS
DECLARE@eventdataXML;
SET@eventdata=EVENTDATA();
INSERTINTOAuditStoredProcedures(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
);