1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| USE AdventureWorks; -- Mets ici ta base
GO
--Créer la table d'audit T_audit
CREATE TABLE T_audit (Dateheure datetime,DatabaseName nvarchar(100),ObjectName nvarchar(100),LoginName nvarchar(100), Event nvarchar(100), Text_SQL nvarchar(2000));
GO
--Créer le trigger d'audit TR_audit
CREATE TRIGGER TR_audit
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
DECLARE @data XML
SET @data = EVENTDATA()
INSERT T_audit
(Dateheure,DatabaseName,ObjectName,LoginName,Event,Text_SQL)
VALUES
(GETDATE(),
@data.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)') ) ;
GO
--Tester le trigger.
CREATE TABLE TestTable (a int)
GO
DROP TABLE TestTable ;
GO
-- Que dit la table d'audit ?
SELECT * FROM T_audit ;
GO |
Partager