Comment puis-je auditer les modifications dans une table MySQL (avec MySQL 4)?

StackOverflow https://stackoverflow.com/questions/218722

  •  03-07-2019
  •  | 
  •  

Question

On m'a demandé de vérifier toutes les modifications d'une table MySQL. Est-ce que quelqu'un connaît des outils pour m'aider à faire cela ou dois-je écrire ma propre solution?

Si j’écris moi-même mes auditions, ma première idée consistait à créer un tableau séparé et à créer une chaîne de modifications dans le code PHP. Quelque chose comme " fieldname1 - > oldvalue | nom de champ2 - > oldvalue, ... " ;. Si vous voyez un problème majeur avec cette méthode, merci de me le faire savoir.

Était-ce utile?

La solution

Le seul moyen sûr de capturer toutes les modifications apportées à une table de base de données consiste à utiliser des déclencheurs sur le serveur. Le risque de modifier votre propre code pour auditer les modifications est que les modifications provenant d'une autre application / utilisateur, etc. ne seront pas capturées.

Cela dit, je ne suis pas sûr que MySQL 4 prenne en charge les déclencheurs.

Autres conseils

Utilisez un déclencheur pour détecter les modifications et écrire valeurs before / after dans une table de journal.

Si vous ne parvenez pas à trouver une solution en raison d’un manque de prise en charge des déclencheurs, je vous recommande vivement de ne pas vider les modifications d’un blob de chaîne. Un jour, on vous demandera d'interroger ces données et vous aurez à faire plusieurs analyses de chaînes pour récupérer vos données. (Je parle d'expérience ici.)

La méthode la plus simple consiste simplement à créer une table d'audit avec les mêmes colonnes que la table d'origine, ainsi qu'une colonne de date de modification et un identifiant séquentiel. Ensuite, vous avez toute l’histoire sous la main pour reconstruire le format dont vous avez besoin, et vous pouvez l’interroger à volonté.

SoftTree DB Audit prend en charge MySQL et peut faire ce que vous cherchez:

http://www.softtreetech.com/idbaudit.htm

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top