PostgreSQL est un système de gestion de base de données relationnelle open source populaire. Connu pour sa fiabilité, il gagne en popularité en raison de sa robustesse, de sa flexibilité et de ses performances. PostgreSQL est utilisé pour gérer des bases de données et de nombreuses applications Web et analytiques. Au moment de la rédaction de cet article, PostgreSQL 13 est la dernière version. Cette version est livrée avec des améliorations significatives du système d'indexation et de recherche qui profitent aux grandes bases de données.
Dans cet article, nous vous montrerons comment installer et sécuriser PostgreSQL sur Rocky Linux 8.
Prérequis
- Un serveur exécutant Rocky Linux 8 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Rocky Linux 8 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
dnf mise à jour -y
Étape 2 – Ajouter un référentiel PostgreSQL 13
liste des modules dnf postgresql
Vous devriez voir que seule la version 10 de PostgreSQL est disponible :
Rocky Linux 8 - Résumé des profils de flux AppStreamName client postgresql 9.6, serveur [d] serveur PostgreSQL et module client postgresql 10 [d] client, serveur [d] serveur PostgreSQL et module client client postgresql 12, serveur [d] serveur PostgreSQL et module client postgresql 13 client, serveur [d] Serveur PostgreSQL et module client
Pour installer la dernière version de PostgreSQL, vous devrez installer le dépôt PostgreSQL sur votre système.
Vous pouvez l'installer à l'aide de la commande suivante :
installation dnf https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Une fois le dépôt créé, vous pouvez passer à l'étape suivante.
Étape 3 - Installer PostgreSQL 13 sur Rocky Linux 8
Maintenant, mettez à jour votre référentiel à l'aide de la commande suivante :
dnf mise à jour -y
Ensuite, désactivez le référentiel PostgreSQL par défaut à l'aide de la commande suivante :
module dnf -qy désactiver postgresql
Ensuite, installez la dernière version de PostgreSQL en exécutant la commande suivante :
dnf installer postgresql13 postgresql13-server
Une fois PostgreSQL 13 installé, vous obtiendrez le résultat suivant :
Dernière vérification de l'expiration des métadonnées :il y a 0:00:08 le vendredi 22 octobre 2021 à 08:38:58 UTC.Dépendances résolues.=============================================================================================================================================Version de l'architecture du package Taille du référentiel=============================================================================================================================================Installation :postgresql13 x86_64 13.4-1PGDG.rhel8 pgdg13 1.5 M postgresql13-server x86_64 13.4-1PGDG.rhel8 pgdg13 5.5 MInstallation des dépendances :postgresql13-libs x86_64 13.4-1PGDG.rhel8 pgdg13 414 kTrans Action Résumé============================================================================================================================================Installer 3 packagesTaille totale de téléchargement :7,4 MTaille installée :31 MI est-ce correct [o/N] : o
Ensuite, initialisez la base de données PostgreSQL avec la commande suivante :
/usr/pgsql-13/bin/postgresql-13-setup initdb
Exemple de sortie :
Initialisation de la base de données... OK
Ensuite, démarrez le service PostgreSQL et autorisez-le à démarrer au redémarrage du système avec la commande suivante :
systemctl start postgresql-13systemctl enable postgresql-13
Vous pouvez vérifier l'état de PostgreSQL avec la commande suivante :
statut systemctl postgresql-13
Vous devriez obtenir le résultat suivant :
● postgresql-13.service - Serveur de base de données PostgreSQL 13 Chargé :chargé (/usr/lib/systemd/system/postgresql-13.service ; désactivé ; préréglage du fournisseur :désactivé) Actif :actif (en cours d'exécution) depuis le ven 2021- 10-22 08:39:47 UTC ; Il y a 7 s Docs :https://www.postgresql.org/docs/13/static/ Processus :36412 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=terminé, statut=0/SUCCESS) PID principal :36417 (postmaster) Tâches :8 (limite :11411) Mémoire :16,8 Mo CGroup :/system.slice/postgresql-13.service ├─36417 /usr/pgsql-13/bin /postmaster -D /var/lib/pgsql/13/data/ ├─36419 postgres :enregistreur ├─36421 postgres :point de contrôle ├─36422 postgres :écrivain d'arrière-plan ├─36423 postgres :walwriter ├─36424 postgres :lanceur de vide automatique ├25─364 postgres :collecteur de statistiques └─36426 postgres :lanceur de réplication logique
ss -antpl | grep 5432
Vous obtiendrez le résultat suivant :
LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* utilisateurs :(("postmaster",pid=36417,fd=7))LISTEN 0 128 [::1]:5432 [::]:* utilisateurs :(("postmaster",pid=36417,fd=6))
Étape 4 - Définir un mot de passe pour l'utilisateur Postgres
Pour définir un mot de passe, connectez-vous à PostgreSQL avec la commande suivante :
su - postgres
Ensuite, définissez un mot de passe sécurisé avec la commande suivante :
psql -c "modifier l'utilisateur postgres avec le mot de passe 'securepassword'"
Ensuite, quittez le shell PostgreSQL à l'aide de la commande suivante :
quitter
Étape 5 - Modifier la méthode d'authentification PostgreSQL
Vous pouvez le changer en modifiant le fichier de configuration principal de PostgreSQL :
nano /var/lib/pgsql/13/data/pg_hba.conf
Recherchez la ligne suivante :
local tous tous pairs
Et remplacez-le par la ligne suivante :
local tous tous scram-sha-256
Enregistrez et fermez le fichier, puis redémarrez le service PostgreSQL pour appliquer les modifications.
systemctl redémarrer postgresql-13
Étape 6 - Créer une base de données et un utilisateur dans PostgreSQL
Tout d'abord, connectez-vous au shell PostgreSQL avec la commande suivante :
sudo -u postgres psql
Vous obtiendrez le résultat suivant :
Impossible de changer de répertoire en "/root" :autorisation refuséepsql (13.4) Tapez "help" pour help.postgres=#
Ensuite, créez un nouvel utilisateur PostgreSQL nommé user1 à l'aide de la commande suivante :
CREATE USER user1 WITH CREATEDB CREATEROLE PASSWORD 'passoword' ;
Pour vérifier les utilisateurs de PostgreSQL, exécutez :
\du
Vous obtiendrez le résultat suivant :
Liste des rôles Nom du rôle | Attributs | Membre de -----------+-------------------------------------------------- ------------------------+----------- postgres | Superutilisateur, Créer un rôle, Créer une base de données, Réplication, Contourner RLS | {} utilisateur1 | Créer un rôle, Créer une base de données | {}Pour créer une nouvelle base de données PostgreSQL nommée user1db, exécutez :
CRÉER BASE DE DONNÉES utilisateur1db PROPRIÉTAIRE utilisateur1 ;Pour vérifier les bases de données PostgreSQL, exécutez :
\lVous obtiendrez le résultat suivant :
Liste des bases de données Nom | Propriétaire | Encodage | Assembler | Ctype | Privilèges d'accès -----------+----------+----------+-------------+ -------------+----------------------- postgres | postgres | UTF8 | fr_US.UTF-8 | fr_US.UTF-8 | modèle0 | postgres | UTF8 | fr_US.UTF-8 | fr_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | fr_US.UTF-8 | fr_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres user1db | utilisateur1 | UTF8 | fr_US.UTF-8 | fr_US.UTF-8 |Conclusion
Toutes nos félicitations! Vous avez installé et sécurisé PostgreSQL avec succès sur Rocky Linux 8. Pour des raisons de sécurité, il est toujours recommandé d'installer la dernière version de PostgreSQL dans l'environnement de production. Essayez l'hébergement VPS d'Atlantic.Net !