# Prérequis

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

---

Index LLMS : [llms.txt](/fr/llms.txt)

---

<!-- Source: https://public.dalibo.com/exports/formation/manuels/formations/dev42/dev42.handout.html, révision 26.09. -->

# Prérequis {#dev42-ch11}

## Installation {#dev42-ch11-1}

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 »](https://postgresql-anonymizer.readthedocs.io/en/stable/INSTALL) dans la [documentation](https://postgresql-anonymizer.readthedocs.io/en/stable/) pour savoir comment installer l’extension dans votre instance PostgreSQL.

Par exemple :

### Sous Rocky Linux 8 {#dev42-ch11-1-1}

- Ajouter le [dépôt RPM Dalibo Labs](https://yum.dalibo.org/labs/)

``` bash
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 :

``` bash
sudo dnf install -y https://yum.dalibo.org/labs/dalibo-labs-4-1.noarch.rpm
```

- Vérifier la version :

``` bash
sudo dnf info postgresql_anonymizer_18
```

- Lancer l’installation :

``` bash
sudo dnf install -y postgresql_anonymizer_18
```

### Sous Debian / Ubuntu {#dev42-ch11-1-2}

- L’utilisation des dépôts du PGDG est optionnelle, mais recommandée (pour le choix des versions de PostgreSQL et divers outils) :

``` bash
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 :

``` bash
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 :

``` bash
sudo apt cache policy postgresql_anonymizer_18
```

- Lancer :

``` bash
sudo apt install -y postgresql_anonymizer_18
```

## Base d’exemple {#dev42-ch11-2}

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

``` sql
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 :

``` sql
\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 :

``` bash
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 {#dev42-ch11-2-1}

- 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`

``` ini
# 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 :

``` sql
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`:

``` sql
SELECT pg_reload_conf();
```

### Activer l’extension {#dev42-ch11-2-2}

Dans chaque base concernée :

``` sql
\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 :

``` sql
SELECT anon.version();
```

``` default
 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).
## Navigation

Pour revenir au chapitre précédent, voir [le chapitre précédent](/fr/dev42/10-postgresql-anonymizer/#dev42-ch10).
Pour poursuivre la lecture, voir [le chapitre suivant](/fr/dev42/12-masquage-statique/#dev42-ch12).
