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 );