下面的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
);
|