Intégrité référentielle

Comment Anonyx préserve l'intégrité référentielle de vos bases

Anonymiser une base, c'est facile. Anonymiser une base qui reste exploitable, c'est une autre histoire. La plupart des outils transforment les valeurs colonne par colonne et cassent au passage les liens entre vos tables : une commande pointe vers un client qui n'existe plus, une ligne de facture référence une commande supprimée. Anonyx garde ces liens intacts à chaque exécution, pour que vos environnements de test se comportent exactement comme la production.

  • Clés primaires et étrangères détectées automatiquement et jamais anonymisées
  • Une même valeur source reçoit la même valeur anonymisée dans toutes les tables
  • Hachage irréversible : HMAC-SHA256 à clé éphémère, détruite à la fin du run
  • Tables traitées dans l'ordre des dépendances : les parents avant les enfants
  • Contrôle automatique à chaque run : aucune clé étrangère orpheline
  • Zéro modification de votre schéma ni de votre code applicatif

Pourquoi les outils naïfs cassent vos bases

Un identifiant client n'a aucune valeur personnelle en soi. Mais il relie une dizaine de tables : commandes, factures, adresses, tickets de support. Le jour où un outil le remplace par une valeur aléatoire dans la table clients sans propager ce changement partout ailleurs, le lien est rompu.

Le résultat est silencieux et coûteux. Vos contraintes de clés étrangères échouent à l'import. Vos jointures renvoient des lignes vides. Vos tests d'intégration passent au vert sur des données incohérentes, ou plantent sans raison apparente. L'équipe perd des heures à diagnostiquer un bug qui n'est pas dans le code, mais dans les données.

C'est exactement ce qu'on reproche aux scripts maison et aux bibliothèques gratuites : ils anonymisent une colonne, pas une base.

Ce que ça change pour vos tests

Avec Anonyx, une base anonymisée se comporte comme une copie de production, sans les données personnelles. Les clés étrangères pointent toujours vers une ligne existante. Les jointures renvoient le même nombre de lignes. Les cas limites de vos données réelles (le client aux 400 commandes, la facture sans adresse de livraison) survivent à l'anonymisation.

Concrètement, vous rafraîchissez vos environnements de dev, de test et de staging avec des données réalistes, et vos suites de tests passent comme en prod. Pas de jeu de données synthétique à maintenir, pas de fixtures qui divergent du schéma réel, pas de contournement de contraintes pour faire entrer les données.

Sous le capot

Trois mécanismes garantissent l'intégrité, et ils s'appliquent à chaque exécution.

Les clés ne sont jamais anonymisées. Au moment de connecter votre base, Anonyx lit le schéma et détecte les clés primaires et étrangères. Ces colonnes sont automatiquement verrouillées sur la stratégie « préserver » : leur valeur est recopiée à l'identique. Anonymiser une clé reviendrait à couper le lien qu'elle porte, donc Anonyx ne le fait pas, et vous empêche de le faire par erreur.

Le masquage est cohérent d'une table à l'autre. Quand une valeur doit être transformée (un e-mail, un nom, un identifiant métier présent dans plusieurs tables), Anonyx enregistre la correspondance entre la valeur d'origine et sa version anonymisée. La même valeur source produit toujours la même valeur anonymisée, partout où elle apparaît. Vos jointures sur ces colonnes continuent de fonctionner.

Les tables sont traitées dans le bon ordre. Anonyx construit le graphe de dépendances de vos clés étrangères et traite les tables parentes avant leurs enfants (tri topologique). Une valeur référencée est donc toujours anonymisée avant les lignes qui la référencent.

Pour les colonnes hachées, Anonyx utilise HMAC-SHA256 avec une clé générée aléatoirement au début de chaque run et détruite à la fin. La même valeur donne le même hash pendant le run, donc les liens tiennent, mais la correspondance n'est plus reconstructible une fois la clé effacée.

Vérifié à chaque exécution

Anonyx ne promet pas l'intégrité, il la mesure. À la fin de chaque run, le moteur revérifie chaque relation de clé étrangère : toute valeur de clé étrangère doit correspondre à une clé primaire existante dans la table référencée.

Le rapport d'exécution affiche le résultat : nombre de relations contrôlées et nombre de violations introduites. L'objectif est zéro, et vous le voyez confirmé à chaque run. Si une règle mal configurée venait à casser un lien, vous le sauriez immédiatement, avant de déployer les données.

Pour comprendre où l'intégrité référentielle s'inscrit dans le débat anonymisation / pseudonymisation au sens du RGPD, voir la page anonymisation vs pseudonymisation.

Des données de test qui se comportent comme la prod

Plan Free pour les développeurs individuels. Détection automatique des clés, masquage cohérent et contrôle d'intégrité inclus dès le premier run.