> Tech > Déclencheur pour capture des DELETE

Déclencheur pour capture des DELETE

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

Il n'est guère plus compliqué que le précédent : voir listing 7. Et peut, comme précédemment, être créé dynamiquement dans la foulée de la table d'historisation dans le déclencheur DDL : voir listing 8. Dans le cas où l'on aurait choisit de ne pas tenir compte des évolutions du schéma

Déclencheur pour capture des DELETE

des tables traquées, alors il conviendrait de modifier les déclencheurs afin que soient spécifiées de manière exhaustive les colon – nes cibles dans les insertions des tables d’historisation.

Listing 7
CREATE TRIGGER dbo.E_D_CLI
ON dbo.T_CLIENT_CLI
FOR DELETE
AS
BEGIN
INSERT INTO DB_HST_LIGNE.dbo.T_CLIENT_CLI (_MA, _MD, CLI_ID,
CLI_NOM, CLI_PRENOM)
SELECT client_net_address, ‘D’, d.*
FROM deleted d
CROSS JOIN sys.dm_exec_connections
WHERE session_id = @@SPID
END

Listing 8
SET @SQL = ‘CREATE TRIGGER E_D_’ + SUBSTRING(@TAB, LEN(@TAB) -2, 3) +
‘ ON ‘ + @SCH + ‘.’ + @TAB +
‘ FOR DELETE AS SET NOCOUNT ON BEGIN INSERT INTO DB_HST_LIGNE.’
+ @SCH + ‘.’ + @TAB + ‘ (_MA, _MD, ‘;
SELECT @SQL = @SQL + COLUMN_NAME + ‘, ‘
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @SCH
AND TABLE_NAME = @TAB;
SET @SQL = SUBSTRING(@SQL, 1, LEN(@SQL) – 1) + ‘) ‘+
‘SELECT client_net_address,  »D », d.* ‘ +
‘FROM deleted d ‘ +
‘CROSS JOIN sys.dm_exec_connections ‘ +
‘WHERE session_id = @@SPID ‘ +
‘END ‘
EXEC (@SQL);

Téléchargez cette ressource

Guide de Cyber-résilience pour Microsoft 365

Guide de Cyber-résilience pour Microsoft 365

La violation de votre tenant M365 va au-delà d’un simple incident de cybersécurité. Elle peut entraîner une interruption opérationnelle généralisée, des perturbations commerciales et une exposition de vos données sensibles. Découvrez les méthodes et technologies pour évaluer, comparer et renforcer votre posture de sécurité Microsoft 365.

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech