Des suggestions pour implémenter des tables d'audit dans SQL Server ?

Une méthode simple que j'ai utilisée dans le passé consiste simplement à créer une deuxième table dont la structure reflète celle que je veux auditer, puis à créer un déclencheur de mise à jour/suppression sur la table principale. Avant qu'un enregistrement ne soit mis à jour/supprimé, l'état actuel est enregistré dans la table d'audit via le déclencheur.

Bien qu'efficaces, les données du tableau d'audit ne sont pas les plus utiles ni les plus simples à rapporter. Je me demande si quelqu'un a une meilleure méthode pour auditer les changements de données ?

Il ne devrait pas y avoir trop de mises à jour de ces enregistrements, mais il s'agit d'informations très sensibles, il est donc important pour le client que toutes les modifications soient auditées et signalées facilement.

请先 登录 后评论

2 réponses

Mark Harrison

Existe-t-il des packages d'audit intégrés ? Oracle a un joli package, qui enverra même les modifications d'audit à un serveur séparé hors de l'accès de tout méchant qui modifie le SQL.

Leur exemple est génial... il montre comment alerter toute personne modifiant les tables d'audit.

请先 登录 后评论
Greg Hurlman

Combien d'écriture par rapport à la lecture de ce(s) tableau(x) attendez-vous ?

J'ai utilisé une seule table d'audit, avec des colonnes pour Table, Colonne, OldValue, NewValue, User et ChangeDateTime - suffisamment générique pour fonctionner avec toute autre modification de la base de données, et bien que BEAUCOUP de données y aient été écrites table, les rapports sur ces données étaient suffisamment clairsemés pour pouvoir être exécutés à des périodes de faible utilisation de la journée.

Ajouté : Si la quantité de données par rapport aux rapports est un problème, la table d'audit peut être répliquée sur un serveur de base de données en lecture seule, ce qui vous permet d'exécuter des rapports chaque fois que nécessaire sans empêcher le serveur maître de faire son travail.

请先 登录 后评论