2013-01-07 3 views
2

J'utilise mysqldump pour créer des dumps DB de l'application en cours à utiliser par les développeurs.Anonymisation à la volée d'un vidage MySQL

Ces données contiennent des données clients. Je souhaite anonymiser ces données, c'est-à-dire supprimer les noms de clients/données de carte de crédit.

Une option serait:

  • créer une copie de la base de données (créer le vidage et vidage importation)
  • requêtes SQL feu qui anonymiser les données
  • Dump de la nouvelle base de données

Mais cela a beaucoup de frais généraux. Une meilleure solution serait, de faire l'anonymisation lors de la création de vidage.

Je suppose que je finirais par analyser toutes les sorties mysqlsqldump? Y a-t-il des solutions plus intelligentes?

Répondre

1

Vous pouvez faire une sélection de chaque table (et non un select *) et spécifier les colonnes que vous voulez avoir et omettre ou vider celles que vous ne voulez pas avoir, puis utiliser l'option d'exportation de phpmyadmin pour chaque question. Pourquoi choisissez-vous dans vos tables si vous voulez randomiser les données?

2

Pourquoi?

Effectuez un mysqldump des tables qui peuvent être sauvegardées en toute sécurité (tables de configuration, etc.) avec des données et mysqldump de vos tables sensibles avec structure uniquement. Puis, dans votre application, vous pouvez construire les instructions INSERT pour les tables sensibles en fonction de vos données créées aléatoirement.

+0

Mais je dois encore recréer la logique de mysqldump (pour la création de ces inserts). Je voudrais éviter cela. – Alex

+0

Vous ne recréez pas la logique 'mysqldump', vous construisez des requêtes SQL. Le travail de 'mysqldump' consiste à vider les données de vos tables et à les ré-incorporer dans les requêtes. Mais vous ne voulez pas les données de vos tables ... vous voulez vos propres données. –

+1

Bon point. Mais même dans les tables affectées, 8 champs sur 10 resteraient tels quels. Donc, je veux une logique mysqldump mais aussi des données propres. – Alex

1

Vous pouvez également utiliser la syntaxe SELECT ... INTO OUTFILE à partir d'une requête SELECT pour effectuer une sauvegarde avec un filtre de colonne. PhpMyAdmin fournit une option d'exportation au format SQL basée sur des requêtes SQL.

+0

peut-il exporter des déclarations MySQL - Je pense qu'il ne peut faire que CSV et similaire. – Alex

+0

+1 'SELECT uid, nom, '[email protected]' COMME E-MAIL DANS 'OUTFILE' /tmp/anonymised.sql 'FROM users' et' LOAD DATA INFILE '/ tmp/anonymised.sql 'INTO TABLE users' semblent bien fonctionner ensemble. Je commencerais là. – l0b0