PostgreSQL : anonymisation de vos sauvegardes logiques

Les stagiaires que je suis en train de former à PostgreSQL m’ont demandé de leur montrer comment anonymiser leurs données de sauvegarde. C’est quelque chose de très simple à réaliser.

Installer l’extension anonymizer

Après avoir installé PostgreSQL 13 à partir des dépôts de l’éditeur sur une CentOS 8, ajoutez le paquet postgresql_anonymizer13 à votre distribution Linux, le chiffre 13 indiquant le numéro de la version du moteur de bases de données Open Source.

yum install postgresql_anonymizer13

Mettre en œuvre l’extension anonymizer dans PostgreSQL

Après vous être connecté à PostgreSQL avec l’outil de votre choix (psql, PgAdmin4, dBeaver, HeidiSQL), vous devez d’abord installer votre extension dans la base où se trouve ta table des données à anonymiser :

CREATE EXTENSION anon CASCADE;

Ensuite, tapez la commande suivante au niveau des colonnes que vous souhaitez anonymiser lors de vos sauvegardes :

COMMENT ON COLUMN main.societe.societe_nom IS 'MASKED WITH FUNCTION md5(societe_nom)';

Dans l’exemple ci-dessus la colonne societe_nom appartient à la table societe du schéma main. Et nous nous servons de la fonction md5 pour chiffrer les données. Vous pouvez utiliser toutes les fonctions de votre choix, comme REPLACE ou REGEX_REPLACE. Vous avez aussi la possibilité d’utiliser des fonctions propres à l’extension PostgreSQL Anonymizer.

La sauvegarde anonymisée de vos données

La sauvegarde ne se fait pas avec pg_dump, mais avec la commande pg_dump_anon installée avec le paquet postgresql_anonymizer13 à l’aide d’un compte trust – ayant le droit de se connecter sans mot de passe – à activer dans votre fichier /var/lib/pgsql/13/data/pg_hba.conf, disposant des droits de lecture sur la base de données où se trouve votre table.

host	bdcrm		admin		0.0.0.0/0		trust

Pensez à recharger la configuration de l’instance PostgreSQL à l’aide de la commande systemctl :

systemctl reload postgresql-13

La sauvegarde anonymisée va pouvoir se réaliser à l’aide de la commande pg_dump_anon comme suit, bdcrm étant la base à sauvegarder et bdcrm.sql étant le fichier de sauvegarde :

/usr/pgsql-13/bin/pg_dump_anon -n main -c -C -d bdcrm -U admin -w -h 192.168.1.113 -f bdcrm.sql

Vérification du contenu du fichier

Dans le fichier bdcrm.sql, le champ societe_nom a bien été anonymisé à l’aide de la fonction md5. CQFD

COPY main.societe FROM STDIN WITH CSV;
2,90b0e533aa91ab02e2992f47fa8b86bd,31000,Toulouse
5,34fe790bda55391aa1b181a467c1f3d1,27520,SAINT-LÉGER-DU-GENNETEY
4,25442aa1d5d81e101966bd10dc9d74a5,27800,SAINT-ELOI-DE-FOURQUES
3,c49e10d2414d1b254e63413a611731b6,31670,LABÈGE
\.

Ressources

Pour réaliser ce tuto, j’ai utilisé ces quelques pages:

Base de données /

deneme bonusu veren siteler casino siteleri betdenemebonusu.com bahis siteleri Ev eşyası depolama Depolama Şehirlerarası evden eve nakliyat Evden eve nakliyat Eşya depolama yurtdışına ev taşıma Türkiye'den Almanya'ya ev taşıma zati eşya tasimaciligi uluslararasi zati eşya tasimaciligi eşya depolama şehirler arası nakliyat asansörlü nakliyat greatplay.net güvenilir online bahis siteler 2022 jetbahis Rexbet hovarda mobilbahis güncel adres sartsız Deneme Bonus sekabet maltcasino güncel adres> pinbahis100.com betduman.com olabahis.top سایت شرط بندی shartkade.com 1xbet-mobil.com beykoz evden eve nakliyat ataşehir evden eve nakliyat şişli evden eve nakliyat istanbul evden eve nakliyat
teens porn videos free sex xxx sexy videos