下面的Trigger用于监控存储过程的更改。
创建监控表:
1
2
3
4
5
6
7
8
|
CREATE TABLE AuditStoredProcedures( DatabaseName sysname , ObjectName sysname , LoginName sysname , ChangeDate datetime , EventType sysname , EventDataXml xml ); |
创建监控Trigger:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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 ); |