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 RDBMS (Relational Database Management System) 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 parmi les développeurs et les 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 sont Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, etc.
Dans ce guide, vous apprendrez à installer la base de données PostgreSQL sur Rocky Linux, à sécuriser le déploiement de la base de données PostgreSQL et à utiliser de base les requêtes PostgreSQL pour gérer les utilisateurs et les bases de données.
Prérequis
- Un système Linux Rocky.
- Un utilisateur avec des privilèges root ou sudo. Cet utilisateur sera utilisé pour installer de nouveaux packages et apporter des modifications à l'échelle du système.
Ajout d'un référentiel PostgreSQL
Pour ce guide, vous allez installer la dernière version stable de PostgreSQL v13.4. Cette version est disponible sur le référentiel PostgreSQL officiel, vous devez donc ajouter le référentiel PostgreSQL à votre système Rocky Linux.
1. Ajoutez le référentiel PostgreSQL officiel pour le 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écutez la commande suivante ci-dessous pour vérifier que le référentiel PostgreSQL est disponible sur votre système.
sudo dnf -qy repolist
Si le référentiel PostgreSQL est disponible sur votre système, vous verrez plusieurs versions des référentiels PostgreSQL comme la capture d'écran ci-dessous.
Installer PostgreSQL 13 sur Rocky Linux
Pour pouvoir installer PostgreSQL à partir du référentiel PostgreSQL officiel (et non à partir du référentiel Rocky Linux), vous devez désactiver le module de référentiel PostgreSQL intégré.
1. Exécutez la commande suivante ci-dessous pour désactiver le référentiel de modules PostgreSQL intégré.
module sudo dnf -qy désactiver 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.
2. Après cela, installez la dernière version de PostgreSQL 13.4 à partir du référentiel PostgreSQL à l'aide de la commande dnf ci-dessous.
sudo dnf install postgresql13-server
Tapez 'y ' et appuyez sur 'Entrée ' pour installer PostgreSQL 13.x.
Attendez ensuite l'installation de PostgreSQL.
Initialisation de la base de données PostgreSQL
Ensuite, une fois l'installation de PostgreSQL terminée, vous devez initialiser la configuration de PostgreSQL, puis démarrer et activer le service PostgreSQL.
1. Exécutez la commande suivante pour initialiser la configuration de la base de données PostgreSQL.
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
2. Après cela, démarrez et activez 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 en cours d'exécution, et il s'exécutera automatiquement à chaque démarrage.
3. Exécutez maintenant la commande ci-dessous pour vérifier le service PostgreSQL.
état sudo systemctl postgresql-13
Si votre service PostgreSQL est en cours d'exécution, vous verrez la sortie verte telle que "active(running)" comme ci-dessous. Sinon, vous verrez la sortie rouge telle que "échec " suivi des journaux des messages d'erreur.
Sécuriser le déploiement de PostgreSQL
Lors de l'installation, PostgreSQL créera un nouvel utilisateur système et un nouveau nom d'utilisateur de base de données en tant que "postgres ". Et pour cette étape, vous allez configurer un nouveau mot de passe pour le "postgres " utilisateur, à la fois pour l'utilisateur système et utilisateur de la base de données .
1. Modifier le mot de passe de l'utilisateur système par défaut "postgres " en utilisant la commande suivante.
passwd postgres
Tapez maintenant le nouveau mot de passe pour l'utilisateur système "postgres ".
2. Ensuite, pour changer le mot de passe pour le "postgres " utilisateur de la base de données, vous devez vous connecter au shell PostgreSQL.
Tout d'abord, connectez-vous en tant qu'utilisateur système "postgres " en utilisant la commande suivante.
su - postgres
Connectez-vous maintenant au shell PostgreSQL à l'aide de la commande psql ci-dessous.
psql
Exécutez la requête suivante pour créer un nouveau mot de passe pour le "postgres" par défaut " utilisateur de la base de données.
ALTER USER postgres WITH PASSWORD 'strongpostgrespassword' ;
Tapez maintenant exit et appuyez sur "Ctrl+d " pour quitter et se déconnecter de 'postgres ' shell utilisateur.
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, vous pouvez utiliser ce type d'authentification, mais pour la production, envisagez d'utiliser la méthode d'authentification par mot de passe.
Pour cette étape, vous apprendrez à changer la méthode d'authentification par défaut des pairs en authentification par mot de passe à l'aide de 'scram-sha-256 '.
1. Tout d'abord, connectez-vous au shell PostgreSQL à l'aide de la commande suivante.
sudo -u postgres psql
Exécutez maintenant la requête suivante pour vérifier l'emplacement de la configuration PostgreSQL 'pg_hba.conf '.
AFFICHER hba_file ;
AFFICHER password_encryption ;
Vous verrez la sortie comme ci-dessous.
Vous remarquerez que la configuration PostgreSQL "pg_hba.conf" se trouve dans '/var/lib/pgsql/13/data ', et le cryptage par défaut du mot de passe pour PostgreSQL sur le système d'exploitation basé sur RHEL est 'scram-sha-256 '.
Tapez maintenant '\q' pour quitter et quitter le shell PostgreSQL.
2. Ensuite, changez le répertoire de travail en '/var/lib/pgsql/13/data ' et modifiez la configuration 'pg_hba.conf ' à l'aide de l'éditeur nano.
cd /var/lib/pgsql/13/data/
nano pg_hba.conf
Au bas de la ligne, changez la méthode d'authentification locale en 'scram-sha-256 ' comme ci-dessous.
# TYPE BASE DE DONNÉES UTILISATEUR ADRESSE MÉTHODE
# "local" est pour les connexions socket de domaine Unix uniquement
local tous br />hôte tous tous 127.0.0.1/32 scram-sha-256
# Connexions locales IPv6 :
hôte tous tous ::1/128Appuyez maintenant sur 'Ctrl+x ', tapez 'y ', et appuyez sur "Entrée " pour enregistrer et quitter.
En utilisant cette configuration, vous serez invité à entrer le mot de passe pour vous connecter au shell PostgreSQL.
3. Ensuite, appliquez la nouvelle configuration en redémarrant le service PostgreSQL à l'aide de la commande suivante.
sudo systemctl redémarrer postgresql-13Désormais, chaque fois que vous souhaitez accéder au shell PostgreSQL, vous devez saisir le mot de passe pour l'authentification.
4. Pour vous assurer de la configuration de l'authentification par mot de passe, connectez-vous au shell PostgreSQL à l'aide de la commande suivante.
su - postgres
psqlMaintenant, il vous sera demandé un mot de passe pour l'utilisateur par défaut 'postgres '.
Tapez le mot de passe pour 'postgres ' utilisateur de la base de données et appuyez sur 'Entrée '. Si votre mot de passe est correct, vous verrez le shell PostgreSQL comme suit. Sinon, vous verrez le message 'FATAL ' erreur car le mot de passe est incorrect.
De plus, vous pouvez utiliser la commande en une ligne pour vous connecter au shell PostgreSQL comme ci-dessous.
# Connectez-vous en tant qu'utilisateur "postgres" par défaut
sudo -u postgres psql
# Connectez-vous en tant qu'un autre utilisateur
sudo -u postgres psql -U username
Création d'un nouvel utilisateur et d'une nouvelle base de données pour votre application
À ce stade, vous apprendrez à créer un nouvel utilisateur et une nouvelle base de données sur PostgreSQL.
1. Connectez-vous au shell PostgreSQL en exécutant la commande ci-dessous.
sudo -u postgres psqlTapez maintenant le mot de passe de l'utilisateur PostgreSQL 'postgres '.
2. Exécutez la requête PostgreSQL ci-dessous pour créer un nouvel utilisateur « johndoe » avec le mot de passe « johndoestrongpassword » et accordez à l'utilisateur les privilèges pour créer une nouvelle base de données et un nouveau rôle.
CREER L'UTILISATEUR johndoe AVEC
CREATEDB
CREATEROLE
MOT DE PASSE 'johndoestrongpassword';
Après cela, vérifiez le nouvel utilisateur à l'aide de la requête suivante.
\duVous verrez maintenant le nouvel utilisateur 'johndoe' avec la liste des rôles 'Créer un rôle ' et 'Créer une base de données ' comme ci-dessous.
3. Ensuite, pour créer une nouvelle base de données utilisateur sur PostgreSQL, exécutez la requête suivante.
CRÉER UNE BASE DE DONNÉES johndoe PROPRIÉTAIRE johndoe ;Vérifiez maintenant la nouvelle base de données à l'aide de la requête suivante.
\lEt vous verrez la nouvelle base de données 'johndoe' avec le propriétaire 'johndoe' comme capture d'écran ci-dessous.
Créer un tableau et insérer des données
Après avoir créé une nouvelle base de données et un nouvel utilisateur, vous apprendrez à créer une table, à saisir des données et à afficher les données de la base de données.
1. Connectez-vous maintenant au shell PostgreSQL en tant qu'utilisateur « johndoe » à l'aide de la commande suivante.
su - postgres
psql -U johndoeOu vous pouvez utiliser la commande d'une ligne comme ci-dessous.
sudo -u postgres psql -U johndoeTapez maintenant le mot de passe de l'utilisateur PostgreSQL 'johndoe ' et appuyez sur 'Entrée ' pour vous connecter.
Comme vous pouvez le voir sur la capture d'écran, vous êtes maintenant connecté au shell PostgreSQL à la base de données 'johndoe=> '.
2. Maintenant, exécutez la requête suivante pour créer une nouvelle table 'utilisateurs' avec quelques colonnes 'id, nom, âge, adresse et salaire'.
Utilisateurs CREATE TABLE (
id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address CHAR(50),
salaire RÉEL
);Pour afficher les tables disponibles sur la base de données actuelle, utilisez le '\d ' requête comme 'décrire ' comme ci-dessous.
\dPour afficher les colonnes sur la table, vous pouvez utiliser la même requête suivie du nom de la table comme ci-dessous.
\d utilisateursVous trouverez ci-dessous le résultat similaire que vous obtiendrez.
3. Ensuite, ajoutez de nouvelles données au tableau en utilisant le 'insert ' requête 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, salaire) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada' , 40000.00);
4. Après cela, vous pouvez afficher toutes les données disponibles en utilisant le 'sélectionner ' requête comme ci-dessous.
SELECT * FROM utilisateurs ;L'option '*' videra toutes les colonnes à l'intérieur de la table.
Pour spécifier la colonne, vous pouvez utiliser le 'sélectionner ' requête comme ci-dessous.
SELECT name,age,salary FROM utilisateurs ;Vous verrez une sortie similaire à celle ci-dessous.
Conclusion
Toutes nos félicitations! Vous savez maintenant comment installer PostgreSQL sur Rocky Linux. De plus, vous avez appris à 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.