CommencezCommencez gratuitement

Audit de la base de données

Votre prochaine tâche consiste à élaborer un nouveau déclencheur pour consigner les modifications apportées aux objets de la base de données.

Vous devez créer le déclencheur au niveau de la base de données. Vous pouvez utiliser le groupe d'événements DDL_TABLE_VIEW_EVENTS pour déclencher le déclencheur. Ce groupe d'événements couvre toute opération de base de données touchant les tables, les vues, les index ou les statistiques. En utilisant ce groupe, vous n'avez pas besoin d'énumérer chaque événement individuellement.

Le déclencheur insérera des détails sur l'instruction déclenchée (événement, utilisateur, requête, etc.) dans la table DatabaseAudit.

Cette activité fait partie du cours

Création et optimisation de déclencheurs dans SQL Server

Voir le cours

Instructions de l’exercice

  • Créez un déclencheur DatabaseAudit sur la base de données qui se déclenche pour DDL_TABLE_VIEW_EVENTS.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

-- Create a new trigger
CREATE TRIGGER ___
-- Attach the trigger at the database level
ON ___
-- Fire the trigger for all tables/ views events
FOR ___
AS
	INSERT INTO DatabaseAudit (EventType, DatabaseName, SchemaName, Object, ObjectType, UserAccount, Query, EventTime)
	SELECT EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]', 'NVARCHAR(50)') AS EventType
		  ,EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]', 'NVARCHAR(50)') AS DatabaseName
		  ,EVENTDATA().value('(/EVENT_INSTANCE/SchemaName)[1]', 'NVARCHAR(50)') AS SchemaName
		  ,EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]', 'NVARCHAR(100)') AS Object
		  ,EVENTDATA().value('(/EVENT_INSTANCE/ObjectType)[1]', 'NVARCHAR(50)') AS ObjectType
		  ,EVENTDATA().value('(/EVENT_INSTANCE/LoginName)[1]', 'NVARCHAR(100)') AS UserAccount
		  ,EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'NVARCHAR(MAX)') AS Query
		  ,EVENTDATA().value('(/EVENT_INSTANCE/PostTime)[1]', 'DATETIME') AS EventTime;
Modifier et exécuter le code