2009-10-18 10 views
0

J'ai besoin de créer dans mon DB un journal, que chaque action dans le programme devrait être écrite là.Comment créer un journal sur les données relationnelles dans SQL-Server?

Je vais également vouloir stocker des données supplémentaires, par exemple avoir la table et la ligne à laquelle l'action a été appliquée. En d'autres termes, je souhaite que le journal soit dynamique et puisse faire référence aux autres tables de la base de données.

Le problème est, je ne sais pas comment relier toutes les tables à ce journal.

Des idées?

Répondre

1

Vous avez deux choix ici:

1) modifier votre programme pour ajouter la journalisation pour chaque accès db

2) ajouter des déclencheurs à chaque table dans votre base de données pour effectuer des opérations d'exploitation forestière.

+0

Ma question est comment il devrait déclencher la journalisation, ma question est de savoir comment stocker le long tout en obtenant les données des tables attachées avec elle. – Shimmy

+0

Je ne comprends toujours pas votre question. "stocker le long" n'a pas de sens pour moi. C'est peut-être un problème de langue. Quelles données souhaitez-vous stocker à partir des tables attachées? Qu'entendez-vous par "tables attachées"? Attaché à quoi? – dar7yl

+0

ci-joint je veux dire, par exemple j'ai 5 tables que je veux qu'ils participent à la journalisation, je veux que chaque enregistrement de journal soit capable de fournir le nom de table et l'ID de ligne que cette entrée de journal a en commun. – Shimmy

0

Je ne recommande pas une table de diagraphie pour toutes les tables. Vous aurez des problèmes de verrouillage si vous le faites (chaque insertion, mise à jour et suppression dans chaque table devra frapper celui-ci, mauvaise idée). Créez une table pour chaque table que vous souhaitez auditer. Il y a beaucoup de conceptions possibles pour la table, mais elles incluent généralement une variante de vieux vlaue, une nouvelle valeur, une date changée et un utilisateur qui a fait le changement. Ensuite, créez des triggers sur chaque table pour consigner les modifications.

Je sais que SQL Server 2008 dispose également d'une manière systémique de mettre en place l'audit, ce serait plus facile à mettre en place que la vérification manuelle et pourrait être suffisant pour attirer votre entreprise en utilisant 2008.

Questions connexes