Comment installer et utiliser PostgreSQL 13 sur Rocky Linux

PostgreSQL est un système de gestion de base de données gratuit et open-source axé sur l’extensibilité et la conformité SQL. PostgreSQL est un SGBDR (système de gestion de base de données relationnelle) avancé et de classe entreprise qui prend en charge les requêtes SQL (relationnelles) et JSON (non relationnelles).

Il s’agit d’un système de gestion de base de données très stable, soutenu par plus de 20 ans de développement par la communauté open-source et jouit d’une solide réputation auprès des développeurs et des administrateurs système pour sa fiabilité, sa flexibilité, la robustesse de ses fonctionnalités et ses performances.

PostgreSQL est utilisé comme base de données principale pour les applications Web, les applications mobiles et les applications analytiques. Certains utilisateurs notables de PostgreSQL dans le monde entier sont Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, etc.

Dans ce guide, tu apprendras à installer la base de données PostgreSQL sur Rocky Linux, à sécuriser le déploiement de la base de données PostgreSQL et à utiliser les bases des requêtes PostgreSQL pour gérer les utilisateurs et les bases de données.

Conditions préalables

  • Un système Rocky Linux.
  • Un utilisateur avec les privilèges root ou sudo. Cet utilisateur sera utilisé pour installer de nouveaux paquets et apporter des modifications à l’ensemble du système.

Ajouter le référentiel PostgreSQL

Pour ce guide, tu vas installer la dernière version stable de PostgreSQL v13.4. Cette version est disponible sur le dépôt officiel de PostgreSQL, tu dois donc ajouter le dépôt PostgreSQL à ton système Rocky Linux.

1. Ajoute le dépôt officiel PostgreSQL au système Rocky Linux en exécutant la commande suivante.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. Ensuite, exécute la commande suivante pour vérifier que le référentiel PostgreSQL est disponible sur ton système.

sudo dnf -qy repolist

Si le référentiel PostgreSQL est disponible sur ton système, tu verras plusieurs versions du référentiel PostgreSQL comme la capture d’écran ci-dessous.

Ajouter et vérifier le référentiel PostgreSQL

Installer PostgreSQL 13 sur Rocky Linux

Pour pouvoir installer PostgreSQL à partir du référentiel officiel de PostgreSQL (et non à partir du référentiel de Rocky Linux), tu dois désactiver le module intégré de référentiel PostgreSQL.

1. Exécute la commande suivante pour désactiver le module intégré de dépôt PostgreSQL.

sudo dnf module -qy disable postgresql

La commande exécutera la commande DNF en mode silencieux et acceptera toutes les clés gpg(option -qy) pour les dépôts PostgreSQL.

Désactiver le référentiel PostgreSQL intégré rocky linux

2. Ensuite, installe la dernière version de PostgreSQL 13.4 à partir du référentiel PostgreSQL en utilisant la commande dnf ci-dessous.

sudo dnf install postgresql13-server

Tape‘y‘ et appuie sur‘Enter‘ pour installer PostgreSQL 13.x.

Install PostgreSQL 13 on Rocky Linux

Ensuite, attends l’installation de PostgreSQL.

Initialisation de la base de données PostgreSQL

Ensuite, une fois l’installation de PostgreSQL terminée, tu dois initialiser la configuration de PostgreSQL, puis démarrer et activer le service PostgreSQL.

1. Exécute la commande suivante pour initialiser la configuration de la base de données PostgreSQL.

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

Initialise la configuration de la base de données PostgreSQL

2. Ensuite, démarre et active le service PostgreSQL à l’aide de la commande ci-dessous.

sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

Maintenant, le service PostgreSQL est actif et fonctionne, et il s’exécutera automatiquement à chaque démarrage.

3. Exécute maintenant la commande ci-dessous pour vérifier le service PostgreSQL.

sudo systemctl status postgresql-13

Si ton service PostgreSQL est en cours d’exécution, tu verras la sortie verte telle que « active(running) » comme ci-dessous. Sinon, tu verras la sortie rouge telle que« failed » suivie des journaux des messages d’erreur.

Démarrer et activer et vérifier l'état du service PostgreSQL

Sécuriser le déploiement de PostgreSQL

Pendant l’installation, PostgreSQL créera un nouvel utilisateur système et un nom d’utilisateur de base de données comme« postgres« . Et pour cette étape, tu vas configurer un nouveau mot de passe pour l’utilisateur« postgres« , à la fois pour l’utilisateur système et l’utilisateur de la base de données.

1. Change le mot de passe de l’utilisateur système par défaut« postgres » en utilisant la commande suivante.

passwd postgres

Tape maintenant le nouveau mot de passe pour l’utilisateur système« postgres« .

2. Ensuite, pour changer le mot de passe de l’utilisateur de la base de données« postgres« , tu dois te connecter au shell PostgreSQL.

Tout d’abord, connecte-toi en tant qu’utilisateur système« postgres » à l’aide de la commande suivante.

su - postgres

Connecte-toi maintenant au shell PostgreSQL en utilisant la commande psql ci-dessous.

psql

Exécute la requête suivante pour créer un nouveau mot de passe pour l’utilisateur par défaut de la base de données« postgres« .

ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';

Tape maintenant exit et appuie sur« Ctrl+d » pour quitter et te déconnecter du shell de l’utilisateur‘postgres‘.

Change le mot de passe postgres pour l'utilisateur Système et l'utilisateur de la base de données

Modifier la méthode d’authentification

Par défaut, les utilisateurs locaux de PostgreSQL se connecteront au shell PostgreSQL en utilisant la méthode ‘peer’. La méthode d’authentification par les pairs ne fonctionnera que pour les connexions locales. Dans l’environnement de développement, tu peux utiliser ce type d’authentification, mais pour la production, pense à utiliser la méthode d’authentification par mot de passe.

Pour cette étape, tu vas apprendre à changer la méthode d’authentification par défaut par les pairs en une authentification par mot de passe utilisant‘scram-sha-256‘.

1. Tout d’abord, connecte-toi au shell PostgreSQL à l’aide de la commande suivante.

sudo -u postgres psql

Exécute maintenant la requête suivante pour vérifier l’emplacement de la configuration PostgreSQL‘pg_hba.conf‘.

SHOW hba_file;
SHOW password_encryption;

Tu verras la sortie comme ci-dessous.

Montre la configuration de PostgreSQL et le cryptage du mot de passe

Tu remarqueras que la configuration PostgreSQL ‘pg_hba.conf’ se trouve dans le répertoire‘/var/lib/pgsql/13/data‘, et que le cryptage du mot de passe par défaut pour PostgreSQL sur le système d’exploitation basé sur RHEL est‘scram-sha-256‘.

Tape maintenant ‘\q’ pour quitter et quitter le shell PostgreSQL.

2. Ensuite, change le répertoire de travail en‘/var/lib/pgsql/13/data‘ et modifie la configuration‘pg_hba.conf‘ en utilisant l’éditeur nano.

cd /var/lib/pgsql/13/data/
nano pg_hba.conf

Au bas de la ligne, change la méthode d’authentification locale en‘scram-sha-256‘ comme ci-dessous.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Appuie maintenant sur‘Ctrl+x‘, tape‘y‘ et appuie sur‘Enter‘ pour enregistrer et quitter.

Avec cette configuration, tu seras invité à saisir le mot de passe pour te connecter au shell PostgreSQL.

3. Ensuite, applique la nouvelle configuration en redémarrant le service PostgreSQL à l’aide de la commande suivante.

sudo systemctl restart postgresql-13

Maintenant, chaque fois que tu veux accéder au shell PostgreSQL, tu dois taper le mot de passe pour l’authentification.

4. Pour t’assurer de la configuration de l’authentification par mot de passe, connecte-toi au shell PostgreSQL à l’aide de la commande suivante.

su - postgres
psql

Il te sera maintenant demandé un mot de passe pour l’utilisateur par défaut‘postgres‘.

Saisis le mot de passe de l’utilisateur de la base de données‘postgres‘ et appuie sur‘Entrée‘. Si ton mot de passe est correct, tu verras le shell PostgreSQL comme suit. Sinon, tu verras l’erreur‘FATAL‘ car le mot de passe est incorrect.

Vérifier l'authentification PostgreSQL

En outre, tu peux utiliser la commande à une ligne pour te connecter au shell PostgreSQL comme ci-dessous.

# Log in as default "postgres" user
sudo -u postgres psql

# Log in as another user
sudo -u postgres psql -U username

Vérifie l'authentification de PostgreSQL avec la commande psql

Créer un nouvel utilisateur et une nouvelle base de données pour ton application

À ce stade, tu vas apprendre à créer un nouvel utilisateur et une nouvelle base de données sur PostgreSQL.

1. Connecte-toi au shell PostgreSQL en exécutant la commande ci-dessous.

sudo -u postgres psql

Tape maintenant le mot de passe de l’utilisateur PostgreSQL‘postgres‘.

2. Exécute la requête PostgreSQL ci-dessous pour créer un nouvel utilisateur ‘johndoe’ avec le mot de passe ‘johndoestrongpassword’ et donne à l’utilisateur des privilèges pour créer une nouvelle base de données et un nouveau rôle.

CREATE USER johndoe WITH 
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';

Créer un nouvel utilisateur PostgreSQL

Ensuite, vérifie le nouvel utilisateur à l’aide de la requête suivante.

\du

Tu verras maintenant le nouvel utilisateur ‘johndoe’ avec la liste des rôles‘Create role‘ et‘Create DB‘ comme ci-dessous.

Afficher l'utilisateur PostgreSQL

3. Ensuite, pour créer une nouvelle base de données utilisateur sur PostgreSQL, exécute la requête suivante.

CREATE DATABASE johndoe OWNER johndoe;

Vérifie maintenant la nouvelle base de données à l’aide de la requête suivante.

\l

Tu verras la nouvelle base de données ‘johndoe’ avec le propriétaire ‘johndoe’ comme dans la capture d’écran ci-dessous.

Crée une nouvelle base de données PostgreSQL et affiche les bases de données disponibles

Créer un tableau et insérer des données

Après avoir créé une nouvelle base de données et un nouvel utilisateur, tu vas apprendre à créer une table, à saisir des données et à afficher des données de la base de données.

1. Connecte-toi maintenant au shell PostgreSQL en tant qu’utilisateur ‘johndoe’ en utilisant la commande suivante.

su - postgres
psql -U johndoe

Ou tu peux utiliser la commande en une ligne comme ci-dessous.

sudo -u postgres psql -U johndoe

Tape maintenant le mot de passe de l’utilisateur PostgreSQL‘johndoe‘ et appuie sur‘Enter‘ pour te connecter.

Connecte-toi au shell PostgreSQL avec l'utilisateur johndoe

Comme tu peux le voir sur la capture d’écran, tu es maintenant connecté au shell PostgreSQL de la base de données‘johndoe=>‘.

2. Exécute maintenant la requête suivante pour créer une nouvelle table ‘users’ avec des colonnes ‘id, nom, âge, adresse et salaire’.

CREATE TABLE users (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

Pour afficher les tables disponibles dans la base de données actuelle, utilise la requête‘\d‘ comme‘describe‘ comme ci-dessous.

\d

Pour afficher les colonnes de la table, tu peux utiliser la même requête suivie du nom de la table comme ci-dessous.

\d users

Voici le résultat similaire que tu obtiendras.

Créer des utilisateurs de tableau et afficher les colonnes disponibles sur le tableau

3. Ensuite, ajoute de nouvelles données au tableau en utilisant la requête‘insert‘ comme ci-dessous.

INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);

Insère des données dans la base de données

4. Après cela, tu peux afficher toutes les données disponibles en utilisant la requête‘select‘ comme ci-dessous.

SELECT * FROM users;

L’option ‘*’ va vider toutes les colonnes du tableau.

Pour spécifier la colonne, tu peux utiliser la requête‘select‘ comme ci-dessous.

SELECT name,age,salary FROM users;

Tu verras un résultat similaire à celui ci-dessous.

Affiche les données de la base de données PostgreSQL

Conclusion

Félicitations ! Tu as maintenant appris à installer PostgreSQL sur Rocky Linux. Tu as aussi appris comment déployer PostgreSQL de manière sécurisée (minimale) et l’utilisation de base des requêtes PostgreSQL pour gérer les utilisateurs, les bases de données et les tables.

Vous aimerez aussi...