PostgreSQL 14 est un système de gestion de bases de données relationnelles open source réputé pour sa robustesse, son évolutivité et son vaste ensemble de fonctionnalités. L'une des fonctionnalités clés introduites dans PostgreSQL 14 était la possibilité de gérer le tri incrémentiel, ce qui a considérablement amélioré les performances des requêtes pour des charges de travail spécifiques. Cette version a également amélioré le traitement parallèle, le vide et le traitement JSON, ce qui en fait un choix judicieux pour les environnements d'entreprise et de développement. Bien qu'il y ait quelques versions en retard sur la dernière version, PostgreSQL 14 reste une option fiable et largement prise en charge.
Pour installer PostgreSQL 14 sur Fedora 40 ou 39 à l'aide du terminal de ligne de commande, vous pouvez importer et installer directement à partir des versions PostgreSQL RPM. Cette méthode garantit que vous disposez de la dernière version et facilite les futures mises à niveau.
Mettre à jour Fedora avant l'installation de PostgreSQL 14
Pour commencer, mettez à jour votre système Fedora pour vous assurer que tous les packages sont à jour. Cette étape permet d'éviter les conflits potentiels lors de l'installation de PostgreSQL. Exécutez la commande ci-dessous :
sudo dnf update --refresh
Importer le référentiel de clés GPG RPM PostgreSQL
Commencez par importer le référentiel PostgreSQL. Cette action garantit l'accès aux versions les plus récentes de PostgreSQL. Sélectionnez et importez le référentiel correspondant à votre version de Fedora Linux.
Importer PostgreSQL 14
Remarque : N'oubliez pas d'importer la version correcte pour votre version de distribution Fedora :
Pour Fedora 40, utilisez cette commande :
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm
Pour Fedora 39, la commande est légèrement différente :
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm
Désactiver le module PostgreSQL par défaut (le cas échéant)
Les référentiels par défaut de Fedora incluent souvent PostgreSQL comme module. Pour prioriser l'installation depuis le dépôt PostgreSQL, il est conseillé de désactiver ce module par défaut. Utilisez la commande suivante pour ce faire :
sudo dnf -qy module disable postgresql
Finaliser l'installation de PostgreSQL 14
Procéder à l'installation de PostgreSQL 14
.Utilisez cette commande pour installer le serveur PostgreSQL 14 et sa documentation :
sudo dnf install postgresql14-server postgresql14-docs -y
De plus, vous pouvez installer le package de développement comme suit.
sudo dnf install postgresql14-devel
Enfin, vous pouvez installer des modules, binaires et bibliothèques supplémentaires d’usage courant.
sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit
Initialiser la base de données PostgreSQL 14
Une fois installé, vous devez exécuter la commande suivante pour initialiser la base de données ; ne pas le faire empêchera PostgreSQL de fonctionner.
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Activer le service Systemd PostgreSQL 14
Par défaut, PostgreSQL n'est pas activé. Utilisez la commande suivante pour démarrer le service immédiatement et au démarrage du système.
sudo systemctl enable postgresql-14 --now
Vérifier l'installation de PostgreSQL 14
Ensuite, vérifiez l'état pour vous assurer que le logiciel est installé et activé sans erreur à l'aide de la commande suivante.
systemctl status postgresql-14
Commandes de service Systemd pour PostgreSQL 14
Gestion du service PostgreSQL 14
Le serveur de base de données PostgreSQL fonctionne comme un service systemd nommé « postgresql-14 » sur Fedora. Les administrateurs système peuvent gérer ce service à l'aide d'un ensemble de commandes systemd vitales pour la maintenance et le dépannage de routine.
Arrêt du serveur PostgreSQL 14
Pour arrêter le service PostgreSQL, peut-être pour des modifications de maintenance ou de configuration, utilisez cette commande :
sudo systemctl stop postgresql-14
Démarrage du serveur PostgreSQL 14
Pour démarrer le service PostgreSQL, notamment après un arrêt ou une première installation, utilisez la commande suivante :
sudo systemctl start postgresql-14
Redémarrage du serveur PostgreSQL 14
La commande restart est utile si vous devez appliquer de nouvelles configurations ou réinitialiser le service PostgreSQL. Il arrête puis démarre le service en une seule action :
sudo systemctl restart postgresql-14
Rechargement du serveur PostgreSQL 14
La commande reload est idéale pour appliquer des modifications de configuration sans arrêter la base de données. Il actualise le service sans interrompre le fonctionnement de la base de données :
sudo systemctl reload postgresql-14
Vérification de l'état du service PostgreSQL 14
Pour vérifier l'état opérationnel du service PostgreSQL, utilisez cette commande. Il fournit des informations sur l'état du service, notamment s'il est actif, inactif ou s'il rencontre des problèmes :
systemctl status postgresql-14
Configurer PostgreSQL 14
Passer au compte Postgres 14
Accéder au compte Postgres 14
Lors de l'installation de PostgreSQL, un compte utilisateur nommé « postgres » est automatiquement créé. Ce compte est associé au rôle Postgres par défaut, qui possède les privilèges de superutilisateur. Pour accéder à la base de données PostgreSQL, passez au compte 'postgres' à l'aide de la commande :
sudo -i -u postgres
Entrée de l'invite PostgreSQL 14
Une fois passé à l'utilisateur 'postgres', accédez directement à l'invite PostgreSQL en tapant psql. Une fois la connexion réussie, l'invite du terminal devient postgres=#, indiquant une connexion active à la base de données.
Pour quitter la base de données PostgreSQL, tapez simplement :
psql
Méthode alternative pour accéder à PostgreSQL 14
Utiliser Sudo pour un accès direct
Vous pouvez également interagir avec la base de données PostgreSQL sans changer de compte en utilisant :
exit
Alternative au changement de compte Postgres
Une autre façon d'interagir avec la base de données Postgres sans changer de compte d'utilisateur consiste à utiliser une commande sudo pour se connecter directement. Vous pouvez le faire en tapant :
sudo -u postgres psql
Cette commande est efficace pour des interactions rapides avec la base de données car elle contourne les commandes de terminal supplémentaires.
Pour quitter, comme pour la première méthode, tapez exit.
exit
Créer un utilisateur et une base de données avec PostgreSQL 14
Création d'un nouveau rôle d'utilisateur
Seuls les superutilisateurs et les rôles disposant du privilège createrole peuvent créer de nouveaux rôles. Pour créer un utilisateur, utilisez la commande :
sudo su - postgres -c "createuser <name>"
Remplacer avec le nom d'utilisateur souhaité.
Création d'une nouvelle base de données
Ensuite, créez une base de données PostgreSQL pour l'utilisateur nouvellement créé :
sudo su - postgres -c "createdb <namedb>"
Remplacer avec le nom de la base de données souhaitée.
Accorder des autorisations
Pour accorder des autorisations au nouvel utilisateur sur la nouvelle base de données, connectez-vous d'abord à la base de données PostgreSQL en tant que superutilisateur :
sudo -u postgres psql
Ensuite, accordez tous les privilèges au nouvel utilisateur :
GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;
Remplacer avec le nom de la base de données et avec le nom d'utilisateur. Pour quitter, tapez exit.
exit
Configurer Firewalld pour PostgreSQL 14
Établir des règles de pare-feu pour PostgreSQL 14
Sécuriser PostgreSQL implique bien plus que simplement installer et exécuter le service ; il est crucial de configurer efficacement les contrôles d'accès au réseau. Cela sécurise la base de données et garantit que seul le trafic légitime y parvient. Nous passerons par la configuration de firewalld, un gestionnaire de pare-feu dynamique dans Fedora, pour protéger PostgreSQL.
Création d'une zone de pare-feu pour PostgreSQL
Tout d'abord, créez une zone dédiée dans firewalld pour PostgreSQL. Cette approche permet un contrôle plus granulaire et une plus grande clarté dans la gestion des règles spécifiques à PostgreSQL :
sudo firewall-cmd --permanent --new-zone=postgres
Cette commande établit une zone « postgres », isolant les règles de pare-feu liées à PostgreSQL pour une gestion plus facile.
Restreindre l'accès aux adresses IP connues
Autoriser l'accès à partir d'une seule adresse IP
Pour les scénarios dans lesquels un seul client ou serveur doit accéder à PostgreSQL :
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
Remplacez 1.2.3.4 par l'adresse IP spécifique nécessitant l'accès à la base de données.
Autoriser un sous-réseau
Dans des environnements tels que les réseaux d'entreprise, il peut être nécessaire d'autoriser un sous-réseau entier :
sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24
Ici, 192.168.1.0/24 représente le sous-réseau. Ajustez cette valeur pour qu'elle corresponde à la plage réseau souhaitée.
Accorder l'accès à plusieurs adresses IP spécifiques
Pour les scénarios avec plusieurs adresses IP connues nécessitant un accès :
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5
Répétez cette commande pour chaque adresse IP.
Gestion de l'accès aux ports pour PostgreSQL 14
Configuration du port PostgreSQL par défaut
Pour les installations standard utilisant le port par défaut :
sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Personnalisation de la configuration du port
Si PostgreSQL fonctionne sur un port non standard (par exemple, 5433) :
sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp
Modifiez le numéro de port en fonction de votre configuration PostgreSQL spécifique.
Implémentation et vérification des nouvelles règles de pare-feu
Application des modifications
Pour activer les nouvelles règles, rechargez firewalld :
sudo firewall-cmd --reload
Cette étape garantit que les nouvelles configurations prennent effet immédiatement.
Vérification des configurations
Après la configuration, il est prudent de revoir les règles définies pour la zone 'postgres' :
sudo firewall-cmd --list-all --zone=postgres
Cette commande affiche toutes les règles actives dans la zone 'postgres', permettant de vérifier le setup.exp
Configuration de l'accès à distance pour PostgreSQL 14
Configuration des interfaces d'écoute pour l'accès à distance
Modification de la configuration de PostgreSQL
Pour activer l'accès à distance à PostgreSQL, il est nécessaire d'ajuster les paramètres de l'interface dans le fichier postgresql.conf. Ce processus permet à PostgreSQL d'accepter des connexions provenant de diverses sources.
Assurez-vous que les paramètres FirewallD sont en place pour permettre l'accès à distance, comme indiqué dans les sections précédentes.
Accéder au fichier de configuration
Pour modifier la configuration de PostgreSQL 14, utilisez l'éditeur de texte nano :
sudo nano /var/lib/pgsql/14/data/postgresql.conf
Modification de l'adresse d'écoute
Dans la section « Paramètres de connexion », remplacez Listen_addresses de « localhost » par vos besoins :
- Écouter sur toutes les interfaces : pour accepter les connexions de n'importe quelle source, définissez listening_addresses sur « * ».
listen_addresses = '*'
- Écouter sur une interface spécifique : spécifiez une adresse IP pour restreindre les connexions à une interface particulière.
listen_addresses = '192.168.1.100'
Après l'édition, enregistrez le fichier (Ctrl + O, puis Entrée) et quittez (Ctrl + X).
Redémarrage du service PostgreSQL 14
Appliquez les modifications en redémarrant le service PostgreSQL :
sudo systemctl restart postgresql-14
Confirmation des ports d'écoute
Utilisez l'utilitaire ss pour vérifier que PostgreSQL écoute sur les ports spécifiés :
ss -nlt | grep 5432
En cas de succès, vous devriez voir les ports dans le port de votre terminal.
Paramètres avancés de connexion à distance dans pg_hba.conf
Personnalisation de l'accès dans le fichier pg_hba.conf
Pour un contrôle précis des connexions distantes, le fichier pg_hba.conf propose diverses options de personnalisation.
Modification de pg_hba.conf
Ouvrez le fichier pg_hba.conf :
sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Configuration des règles d'accès à distance
Autoriser des utilisateurs et des bases de données spécifiques
Pour limiter l'accès à un utilisateur et à une base de données spécifiques à partir d'une adresse IP particulière :
héberger ma base de données monutilisateur 192.168.1.100/32 md5
Autoriser un sous-réseau
Pour un accès plus large, comme un sous-réseau entier :
héberger tous les 192.168.1.0/24 md5
Utiliser différentes méthodes d'authentification
Choisissez une méthode d'authentification adaptée à votre environnement. Pour l'authentification par mot de passe :
héberger tout 0.0.0.0/0 md5
Pour l'authentification de confiance (notez les risques de sécurité) :
héberger tous tous 0.0.0.0/0 confiance
Après avoir configuré les règles souhaitées, enregistrez et quittez l'éditeur.
Application et vérification des modifications
Redémarrez PostgreSQL pour implémenter les nouvelles configurations :
sudo systemctl restart postgresql-14
Vérifiez les paramètres effectifs dans pg_hba.conf en utilisant :
cat /var/lib/pgsql/14/data/pg_hba.conf
Configurer SELinux pour PostgreSQL 14
Lors de la configuration de PostgreSQL 14 sur Fedora, il est essentiel de configurer correctement SELinux (Security-Enhanced Linux). SELinux ajoute une couche de sécurité en appliquant des politiques de contrôle d'accès. Une mauvaise configuration peut entraîner des problèmes courants tels que des refus d’accès ou des interruptions de service.
Définition de SELinux en mode permissif pour le dépannage
Ajustement temporaire du mode SELinux
Si vous rencontrez des problèmes de démarrage ou de fonctionnement correct de PostgreSQL, envisagez de définir temporairement SELinux en mode « Permissif ». Ce mode autorise les opérations qui seraient bloquées en mode « Application » mais les enregistre pour examen :
sudo setenforce 0
Journaux de surveillance pour les refus AVC
Vérifiez les journaux SELinux pour les refus AVC (Access Vector Cache) :
sudo restorecon -Rv /var/lib/pgsql/14/data/
Cette commande permet d'identifier les politiques SELinux empêchant PostgreSQL de fonctionner correctement.
Configuration des politiques SELinux pour PostgreSQL 14
Restauration du contexte SELinux par défaut
Pour vous assurer que les fichiers ont le contexte SELinux correct, utilisez la commande restaurercon. Des contextes incorrects sur les répertoires ou fichiers PostgreSQL peuvent entraîner des problèmes d'accès :
sudo setsebool -P postgresql_can_rnetwork 1
Cette commande active le booléen postgresql_can_rnetwork, autorisant les connexions réseau.
Configuration avancée de SELinux
Personnalisation des politiques SELinux
Dans des configurations plus complexes, par exemple lorsque PostgreSQL interagit avec d'autres services ou ports personnalisés, la création de politiques SELinux personnalisées peut être nécessaire. Utilisez l'outil audit2allow pour générer des modules de politique personnalisés en fonction de besoins spécifiques.
Application de stratégies personnalisées
Après avoir créé des stratégies personnalisées, appliquez-les en utilisant :
sudo semodule -i my_postgresql.pp
Remplacez my_postgresql.pp par le nom de votre fichier de stratégie.
Vérification des paramètres SELinux
Vérification de l'état de SELinux
Confirmez l'état de SELinux pour vous assurer qu'il est correctement défini pour votre installation PostgreSQL :
sestatus
Validation des contextes de fichiers
Vérifiez que les fichiers et répertoires liés à PostgreSQL ont les contextes SELinux appropriés :
ls -Z /var/lib/pgsql/14/data/
Conclusion
Avec PostgreSQL 14 installé avec succès sur votre système Fedora, vous pouvez tirer parti de ses fonctionnalités avancées et de ses performances robustes pour répondre aux besoins de votre base de données. Vérifiez régulièrement les mises à jour et les futures mises à niveau des versions PostgreSQL RPM pour maintenir votre système à jour.
Pour plus d'informations sur l'utilisation de PostgreSQL, visitez le site officiel Documentation.