15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
31.10.2024
1 +1

Comment gérer les bases de données dans PostgreSQL : Un guide complet pour les utilisateurs de VPS Linux

PostgreSQL (communément appelé Postgres) est l’un des systèmes de gestion de bases de données relationnelles open-source les plus puissants et les plus riches en fonctionnalités disponibles aujourd’hui. Approuvé par les startups et les équipes d’entreprise, il excelle dans le traitement des requêtes complexes, des grands ensembles de données et des architectures d’applications évolutives. Que vous construisiez une plateforme SaaS, une boutique de commerce électronique ou un backend API gourmand en données, PostgreSQL offre la fiabilité et les performances que votre projet exige.

L’exécution de PostgreSQL dans un environnement VPS Hosting haute performance — avec stockage NVMe SSD, accès root complet et protection DDoS intégrée — vous donne un contrôle total sur votre infrastructure de base de données sans les frais généraux des solutions cloud gérées. Ce guide vous guide à travers chaque tâche essentielle de gestion de PostgreSQL, de l’accès initial et la création de base de données aux permissions utilisateur, aux sauvegardes et au renforcement de la sécurité.

Prérequis

Avant de procéder, assurez-vous que vous avez :

  • Un VPS Linux exécutant Ubuntu, Debian ou CentOS avec PostgreSQL installé
  • Un accès root ou sudo à votre serveur
  • Une familiarité de base avec la ligne de commande Linux

Si vous n’avez pas encore configuré votre environnement serveur, les Panneaux de Contrôle VPS d’AlexHost rendent simple la configuration rapide de votre pile.

1. Accès à l’Interface de Ligne de Commande PostgreSQL

Toutes les tâches de gestion de PostgreSQL commencent à l’interface de ligne de commande (CLI), également connue sous le nom de psql. Par défaut, PostgreSQL crée un utilisateur système appelé postgres lors de l’installation, et ce compte est utilisé pour s’authentifier auprès du moteur de base de données.

Étape 1 : Basculer vers l’Utilisateur Système PostgreSQL

sudo -i -u postgres

Étape 2 : Lancer la CLI PostgreSQL

psql

Une fois connecté, vous verrez l’invite interactive :

postgres=#

Cela confirme que vous êtes dans l’environnement PostgreSQL et prêt à exécuter des commandes SQL et des méta-commandes.

> Conseil Pro : Vous pouvez également vous connecter directement sans changer d’utilisateur en exécutant sudo -u postgres psql à partir de votre session shell régulière.

2. Création d’une Nouvelle Base de Données

Les bases de données sont les conteneurs de niveau supérieur pour toutes vos tables, index et données stockées. Utilisez l’instruction CREATE DATABASE pour provisionner une nouvelle base de données.

Syntaxe

CREATE DATABASE database_name;

Exemple

CREATE DATABASE my_database;

Cela crée une base de données nommée my_database appartenant au rôle PostgreSQL actuellement actif.

Vérifier que la Base de Données a été Créée

Utilisez la méta-commande l pour lister toutes les bases de données sur le serveur :

l

Vous verrez un tableau affichant les noms de base de données, les propriétaires, les encodages et les privilèges d’accès.

3. Création et Gestion des Utilisateurs de Base de Données

La gestion appropriée des utilisateurs est critique pour la sécurité de la base de données. Plutôt que d’accorder à toutes les applications un accès sous le compte superutilisateur postgres, vous devez créer des utilisateurs dédiés avec des permissions limitées.

Créer un Nouvel Utilisateur

CREATE USER username WITH PASSWORD 'your_secure_password';

Exemple

CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';

Accorder un Accès Complet à une Base de Données Spécifique

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Exemple

GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;

Cela accorde à dbuser un accès complet en lecture et écriture à my_database, y compris la capacité de créer et supprimer des tables.

Lister Tous les Utilisateurs

Pour afficher tous les rôles et utilisateurs existants :

du

4. Connexion à une Base de Données

Une fois qu’une base de données existe, vous devez vous y connecter avant de pouvoir créer des tables ou exécuter des requêtes contre elle.

Basculer vers une Base de Données

c my_database

L’invite sera mise à jour pour refléter la base de données active :

my_database=#

Vous opérez maintenant dans my_database et pouvez exécuter toutes les instructions DDL et DML contre elle.

5. Création et Gestion des Tables

Les tables sont l’unité structurelle centrale de toute base de données relationnelle. Chaque table définit un schéma — un ensemble de colonnes nommées avec des types de données et des contraintes spécifiques.

Créer une Table

CREATE TABLE table_name (
    column1 data_type PRIMARY KEY,
    column2 data_type,
    column3 data_type
);

Exemple Pratique : Table de Dossiers d’Employés

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    department  VARCHAR(50),
    salary      NUMERIC(10, 2)
);

Ici, SERIAL incrémente automatiquement le employee_id sur chaque nouvelle ligne, et NOT NULL impose que chaque employé doit avoir un nom.

6. Insertion, Interrogation, Mise à Jour et Suppression de Données

Insérer un Enregistrement

INSERT INTO employees (name, department, salary)
VALUES ('Jane Smith', 'Engineering', 72000);

Interroger Tous les Enregistrements

SELECT * FROM employees;

Filtrer les Résultats avec une Clause WHERE

SELECT name, salary FROM employees WHERE department = 'Engineering';

Mettre à Jour un Enregistrement Existant

UPDATE employees
SET salary = 78000
WHERE name = 'Jane Smith';

Supprimer un Enregistrement Spécifique

DELETE FROM employees
WHERE name = 'Jane Smith';

> Bonne Pratique : Utilisez toujours une clause WHERE avec les instructions UPDATE et DELETE. L’omettre affectera chaque ligne du tableau.

7. Gestion de l’Accès à la Base de Données et de la Sécurité

La sécurité est une préoccupation de première classe dans tout déploiement PostgreSQL en production. Le principe du moindre privilège — accorder aux utilisateurs uniquement les permissions dont ils ont réellement besoin — réduit considérablement votre surface d’attaque.

Révoquer Tous les Privilèges d’un Utilisateur

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;

Accorder un Accès en Lecture Seule à une Table Spécifique

GRANT SELECT ON TABLE employees TO dbuser;

Cela permet à dbuser d’interroger la table employees mais empêche toute insertion, mise à jour ou suppression.

Accorder des Permissions DML Spécifiques

GRANT SELECT, INSERT, UPDATE ON TABLE employees TO dbuser;

Recommandations de Sécurité Supplémentaires

  • Utilisez des mots de passe forts et uniques pour chaque utilisateur de base de données
  • Désactivez l’accès à distance pour le superutilisateur postgres dans pg_hba.conf
  • Activez les connexions SSL pour chiffrer les données en transit — associez cela à un Certificat SSL de confiance sur votre serveur
  • Auditez régulièrement les privilèges utilisateur en utilisant du et dp
  • Maintenez PostgreSQL à jour pour corriger les vulnérabilités connues

8. Sauvegarde et Restauration des Bases de Données

Les sauvegardes régulières sont non négociables pour toute base de données en production. PostgreSQL fournit les utilitaires pg_dump et psql pour des flux de travail de sauvegarde et restauration simples.

Sauvegarder une Base de Données dans un Fichier SQL

pg_dump my_database > my_database_backup.sql

Cela exporte le schéma et les données de la base de données entière sous forme de script SQL en texte brut.

Sauvegarder au Format Compressé (Recommandé pour les Grandes Bases de Données)

pg_dump -Fc my_database > my_database_backup.dump

Le format personnalisé (-Fc) produit un fichier binaire compressé et supporte la restauration parallèle.

Restaurer une Base de Données à partir d’une Sauvegarde SQL

psql my_database < my_database_backup.sql

Restaurer à partir d’une Sauvegarde au Format Personnalisé

pg_restore -d my_database my_database_backup.dump

Automatiser les Sauvegardes avec une Tâche Cron

Planifiez les sauvegardes quotidiennes en ajoutant une entrée cron :

crontab -e
0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sql

Cela exécute une sauvegarde chaque jour à 2h00 du matin et ajoute la date au nom du fichier pour un versioning facile.

9. Suppression de Tables et de Bases de Données

Quand une table ou une base de données n’est plus nécessaire, utilisez la commande DROP pour la supprimer définitivement.

Supprimer une Table

DROP TABLE table_name;

Exemple

DROP TABLE employees;

Supprimer une Table Uniquement si Elle Existe (Syntaxe Plus Sûre)

DROP TABLE IF EXISTS employees;

Supprimer une Base de Données

Vous devez vous déconnecter de la base de données cible avant de la supprimer. Basculez d’abord vers la base de données par défaut postgres :

c postgres

Puis supprimez la cible :

DROP DATABASE my_database;

> Avertissement : DROP DATABASE est irréversible. Vérifiez toujours que vous avez une sauvegarde actuelle avant d’exécuter cette commande en production.

10. Référence des Méta-Commandes PostgreSQL Utiles

La CLI psql inclut un ensemble riche de méta-commandes (préfixées par ) qui simplifient la navigation et l’inspection :

CommandeDescription
lLister toutes les bases de données
c dbnameSe connecter à une base de données
dtLister toutes les tables dans la base de données actuelle
d table_nameDécrire le schéma d’une table
duLister tous les utilisateurs et rôles
dpAfficher les privilèges d’accès aux tables
timingBasculer l’affichage du temps d’exécution des requêtes
###PPT_NOTR_73_CODE
15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer