Il existe trois choix évidents: utiliser des déclencheurs, utiliser SQL pour vous connecter à votre liste de distribution de données ou utiliser log4net pour vous connecter à votre liste de distribution de données.
Utilisation de triggers
Si vous utilisez des déclencheurs, ajoutez une colonne LastUser à chaque table et faire ladite colonne requise (ie NOT NULL avec une contrainte de vérification que ce n'est pas une chaîne vide). Vous aurez besoin de la colonne LastUser disponible pour le code dans vos déclencheurs afin que vous puissiez enregistrer qui a fait quoi. Vous ne dites pas quel système de base de données vous utilisez; certains ne prennent pas en charge les déclencheurs ou ne prennent pas en charge les déclencheurs SELECT (avez-vous besoin d'enregistrer les instructions SELECT en cours d'exécution?).
Connexion de DAL En utilisant SQL
Si vous vous connectez de votre DAL dans la base de données, nous l'espérons tous vos appels passent par une pièce centrale de code. Si c'est le cas, vous pouvez ajouter votre méthode de journalisation unique dans cette section de code. Rappelez-vous que vous voulez emballer tous les appels à la base de données dans une transaction pour vous assurer que votre journal et les données réelles ne sont pas désynchronisées.
Connexion de DAL L'utilisation Log4Net
Vous pourriez aussi facilement mettre en place log4net pour enregistrer tous les accès aux données. Log4net a la capacité d'enregistrer des entrées de journal dans des fichiers journaux, mais aussi dans des bases de données. L'ajout de log4net au code existant est facile, et la configuration est relativement facile.
J'ai fait la même chose pour des colonnes spécifiques d'une table. Vous pouvez lire un peu sur les déclencheurs. Voici deux liens que vous pouvez utiliser pour lire un peu à leur sujet http://www.sqlteam.com/article/an-introduction-to-triggers-part-i http://www.go4expert.com/forums /showthread.php?t=15510 –
Je suis d'accord avec Flaktron: si vous voulez uniquement vous connecter à des interactions de base de données, l'utilisation de déclencheurs SQL est votre moyen le plus fiable de vérification. Imho: o) –
Cela ne fonctionne que si 1) chaque utilisateur est connecté à la base de données avec son propre nom d'utilisateur, ou 2) chaque insertion, mise à jour ou suppression inclut un nom d'utilisateur dans l'instruction sql. Dans le cas d'une application Web, où la base de données est accessible via un compte d'utilisateur de base de données unique pour tous les comptes d'utilisateurs d'applications Web, les déclencheurs peuvent ne pas être le choix le plus facile. – Thorin