É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
Sections
Administration Linux

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 de la création de bases de données aux autorisations utilisateur, aux sauvegardes et au renforcement de la sécurité.

Prérequis

Avant de continuer, assurez-vous que vous disposez de :

  • 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 facilitent la configuration rapide de votre pile.

1. Accès à l’interface de ligne de commande PostgreSQL

Toutes les tâches de gestion 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 utile : Vous pouvez également vous connecter directement sans changer d’utilisateur en exécutant sudo -u postgres psql à partir de votre session shell habituelle.

2. Créer une nouvelle base de données

Les bases de données sont les conteneurs de haut niveau 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 des bases 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 essentielle pour la sécurité de la base de données. Plutôt que d’accorder à toutes les applications un accès sous le compte postgres superutilisateur, vous devriez 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 de 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 fondamentale 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 des dossiers des employés

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

Ici, SERIAL auto-incrémente 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’omission de celle-ci affectera chaque ligne du tableau.

7. Gestion de l’accès et de la sécurité des bases de données

La sécurité est une préoccupation majeure dans tout déploiement PostgreSQL en production. Le principe du moindre privilège — accorder aux utilisateurs uniquement les permissions dont ils ont 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 des utilisateurs 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 indispensables pour toute base de données en production. PostgreSQL fournit les utilitaires pg_dump et psql pour des workflows 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 l’intégralité du schéma et des données de la base de données sous forme de script SQL en texte brut.

Sauvegarde 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 à 2:00 AM 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 disposez d’une sauvegarde actuelle avant d’exécuter cette commande en production.

10. Référence utile des méta-commandes PostgreSQL

Le CLI psql inclut un ensemble riche de méta-commandes (préfixées avec ) 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
qQuitter le CLI PostgreSQL

11. Quitter l’interface PostgreSQL CLI

Lorsque vous avez terminé votre session, quittez proprement en utilisant :

q

Cela vous ramène à l’invite du shell Linux.

Pourquoi exécuter PostgreSQL sur un VPS AlexHost ?

Les performances et le contrôle sont les deux principales raisons d’auto-héberger PostgreSQL sur un VPS dédié plutôt que de dépendre d’un service de base de données partagé ou géré. Avec l’infrastructure d’AlexHost, vous obtenez :

  • Stockage NVMe SSD pour des opérations de lecture/écriture ultra-rapides sur de grands ensembles de données
  • Accès root complet pour configurer PostgreSQL exactement comme votre application l’exige
  • Protection DDoS pour maintenir votre serveur de base de données disponible dans des conditions réseau défavorables
  • Ressources évolutives — mettez à niveau votre CPU, RAM et stockage à mesure que vos données augmentent

Pour les équipes gérant plusieurs applications ou projets clients, les Serveurs Dédiés offrent une isolation encore plus grande, des performances brutes et une latence prévisible pour les charges de travail gourmandes en bases de données.

Si vous hébergez des applications web aux côtés de vos bases de données PostgreSQL, l’association de votre VPS avec l’Hébergement Web Partagé pour les actifs statiques ou la livraison front-end peut optimiser davantage votre architecture et réduire les coûts.

Conclusion

Maîtriser la gestion des bases de données PostgreSQL sur un VPS Linux vous donne la propriété complète de votre infrastructure de données — de la conception du schéma et des permissions utilisateur aux sauvegardes automatisées et au renforcement de la sécurité. Les commandes et les flux de travail couverts dans ce guide représentent l’ensemble de compétences fondamentales que chaque développeur et administrateur système doit maîtriser pour exploiter PostgreSQL en confiance en production.

Résumé de référence rapide :

  • Utilisez CREATE DATABASE et CREATE USER pour provisionner de nouvelles ressources
  • Appliquez le principe du moindre privilège avec GRANT et REVOKE
  • Sauvegardez toujours avec pg_dump avant d’effectuer des modifications destructrices
  • Utilisez l, dt et du pour inspecter votre environnement en un coup d’œil
  • Planifiez les sauvegardes automatisées via cron pour vous protéger contre la perte de données

Prêt à mettre ces compétences en pratique ? Lancez un environnement Linux entièrement géré sur un plan VPS Hosting d’AlexHost et prenez le contrôle complet de votre déploiement PostgreSQL dès aujourd’hui.