Déploiement
Déploiement • Chapitre 7 : Déploiement et connexion à une base de données

Présentation des bases de données en production

Découvrez les impératifs critiques d'une base de données en production : étanchéité réseau (ports fermés à internet), haute disponibilité, indexation des requêtes et intégrité transactionnelle ACID.

🛡️
Isolation Réseau

La base n'écoute que sur 127.0.0.1 ou au sein d'un Virtual Private Cloud (VPC) privé.

🔒
Moindre Privilège

L'application ne dispose que des droits DML (SELECT, INSERT, UPDATE, DELETE), jamais DROP ou ALTER.

⚡
Indexation Stratégique

Accélération des recherches pour éviter les scans séquentiels complets de tables volumineuses.

💾
Plan de Sauvegarde

Sauvegardes automatiques quotidiennes chiffrées et exportées hors du serveur.

db-security-audit.sh
# 1. Vérifier que MySQL n'écoute PAS sur l'adresse IP publique
$ sudo ss -tulpn | grep 3306
tcp   LISTEN 0      151          127.0.0.1:3306      0.0.0.0:*    users:(("mysqld",pid=940,fd=34))
# ✅ 127.0.0.1 : Inaccessible depuis l'extérieur du serveur !

# 2. Vérifier les connexions actives et la charge en direct
$ sudo mysqladmin -u root -p status
Uptime: 45012  Threads: 4  Questions: 145028  Slow queries: 0  Opens: 210  Open tables: 180

# 3. Vérifier l'espace disque disponible pour les données
$ df -h /var/lib/mysql
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        78G   14G   61G  19% /var/lib/mysql

Guide Approfondi & Architecture Système

1. L'Analogie du Coffre-Fort de Banque

Dans un système d'information :
  • Le Frontend est la vitrine du magasin sur la rue.
  • Le Backend API est le guichetier sécurisé qui vérifie les identités et applique les règles.
  • La Base de Données est le coffre-fort blindé au sous-sol. Aucun client de la rue ne doit voir la porte du coffre ni connaître sa combinaison. Seul le guichetier (l'API) a le droit de descendre y déposer ou retirer de l'argent.

2. La Règle d'Or : Le Port 3306 / 5432 ne doit JAMAIS être ouvert sur Internet

L'erreur la plus catastrophique des développeurs débutants est d'ouvrir le port 3306 (MySQL) ou 5432 (PostgreSQL) sur 0.0.0.0 pour pouvoir s'y connecter depuis leur maison avec DBeaver ou TablePlus.
Conséquence immédiate : Des milliers de bots automatisés scannent le web en permanence et bombardent le port d'attaques par force brute. Si vous avez besoin d'administrer votre base à distance, utilisez un tunnel SSH chiffré ou le VPN privé du datacenter.

Tableau Comparatif : Base de Données en Dev vs en Production

AspectEnvironnement de DéveloppementEnvironnement de Production
Compte utilisateurSouvent 'root' sans mot de passeUtilisateur applicatif dédié avec mot de passe cryptographique fort
Accès distantAccessible depuis localhost sans restrictionFermé à internet (bind-address = 127.0.0.1)
Gestion des modificationsModifications manuelles de tables dans phpMyAdminMigrations versionnées et automatisées (Prisma, Flyway, Knex)
SauvegardesAucune sauvegardeSnapshots quotidiens + réplication read-replica