Aller au contenu

11 Prérequis

Transcription française complète du chapitre « Prérequis » du manuel DEV42, révision 26.09, pages PDF 483 à 488.
DEV42

Prérequis

Installation

Cet exemple nécessite :

  • une instance PostgreSQL ;
  • l’extension PostgreSQL Anonymizer (anon)
    • installée, initialisée par un super-utilisateur
  • une base boutique
    • dont le propriétaire est paul, super-utilisateur
  • les rôles pierre et jack
    • avec droits de connexion à boutique

Voir section « Installation » dans la documentation pour savoir comment installer l’extension dans votre instance PostgreSQL.

Par exemple :

Sous Rocky Linux 8

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql18-server
sudo /usr/pgsql-18/bin/postgresql-18-setup initdb
sudo systemctl enable postgresql-18
sudo systemctl start postgresql-18
  • Ajout du dépôt RPM DaLibo Labs :
sudo dnf install -y https://yum.dalibo.org/labs/dalibo-labs-4-1.noarch.rpm
  • Vérifier la version :
sudo dnf info postgresql_anonymizer_18
  • Lancer l’installation :
sudo dnf install -y postgresql_anonymizer_18

Sous Debian / Ubuntu

  • L’utilisation des dépôts du PGDG est optionnelle, mais recommandée (pour le choix des versions de PostgreSQL et divers outils) :
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y
sudo apt -y install postgresql-18
  • Ajout du dépôt DaLibo Labs DEB :
sudo apt install -y curl lsb-release
echo deb http://apt.dalibo.org/labs $(lsb_release -cs)-dalibo main \
 |sudo tee /etc/apt/sources.list.d/dalibo-labs.list
sudo curl -fsSL -o /etc/apt/trusted.gpg.d/dalibo-labs.gpg \
 https://apt.dalibo.org/labs/debian-dalibo.gpg
sudo apt update
  • Vérifier la version :
sudo apt cache policy postgresql_anonymizer_18
  • Lancer :
sudo apt install -y postgresql_anonymizer_18

Base d’exemple

Création des rôles pierre, paul, jack et la base boutique :

CREATE ROLE paul LOGIN SUPERUSER ;
CREATE ROLE pierre LOGIN ;
CREATE ROLE jack LOGIN ;

GRANT pg_read_all_data TO jack;
GRANT pg_write_all_data TO jack;

CREATE DATABASE boutique OWNER paul;
  • Définir un mot de passe pour chaque utilisateur :
\password paul
\password pierre
\password jack

En tant qu’utilisateur système postgres, créer le fichier .pgpass, le compléter et mettre à jour les droits :

touch ~/.pgpass
echo "*:*:boutique:pierre:<mot_de_passe>" >> ~/.pgpass
echo "*:*:boutique:paul:<mot_de_passe>" >> ~/.pgpass
echo "*:*:boutique:jack:<mot_de_passe>" >> ~/.pgpass
chmod 0600 ~/.pgpass

Remplacer par le mot de passe attribué à chaque rôle

Ouverture des accès

  • Mise à jour du fichier pg_hba.conf

Mettre à jour le fichier pg_hba.conf, situé :

  • sur RHEL : /var/lib/pgsql/18/data/pg_hba.conf
  • sur Debian : /etc/postgresql/18/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             postgres                                peer
local   all             all                                     scram-sha-256

Les autres lignes peuvent être supprimées.

  • Charger l’extension :
ALTER DATABASE boutique
  SET session_preload_libraries = 'anon';

La modification du paramètre session_preload_libraries s’applique aux nouvelles sessions, une déconnexion et reconnexion est nécessaire pour que les changements soient visibles.

Recharger la configuration pour valider les mises à jour du paramètre session_preload_libraries et du fichier pg_hba.conf:

SELECT pg_reload_conf();

Activer l’extension

Dans chaque base concernée :

\c boutique
CREATE EXTENSION IF NOT EXISTS anon ;
SELECT anon.init() ;

La fonction anon.init() permet d’initialiser les valeurs de pseudonymisation dans les tables du schéma anon. Ces valeurs seront ensuite utilisées lors du processus de pseudonymisation des données.

On peut vérifier que la version installée est la bonne :

SELECT anon.version();
 version
---------
 3.0.0
(1 ligne)

Si la version correspond à la 1.3.2, cela signifie que le dépôt PGDG a été utilisé pour l’installation, et non le dépôt DaLibo Labs.

Désormais, sauf précision contraire, toutes les commandes sont à exécuter en tant que paul (le propriétaire).

Pour revenir au chapitre précédent, voir le chapitre précédent. Pour poursuivre la lecture, voir le chapitre suivant.