Préambule : DBeaver et phpMyAdmin
Avant d’installer DBeaver, comprenons ce qu’est cet outil, et pourquoi on le préfère à phpMyAdmin pour administrer une base de données, notamment du point de vue de la cybersécurité.
DBeaver : qu’est-ce que c’est ?
DBeaver est un client SQL : une application installée sur le poste de l’administrateur, qui se connecte à un serveur de bases de données pour l’explorer, l’interroger et le gérer.
- Universel : une seule interface pour MySQL, MariaDB, PostgreSQL, SQLite, SQL Server, Oracle… grâce à des pilotes (drivers) JDBC.
- Installé sur le poste client : application de bureau (Windows, macOS, Linux). Rien à installer côté serveur.
- Libre et gratuit : l’édition Community est open source (licence Apache 2.0).
- Complet : éditeur SQL, navigateur de structure, édition des données, diagramme ER, export CSV / Excel / SQL / JSON.
phpMyAdmin : une application web à déployer
phpMyAdmin est une application web écrite en PHP : on l’utilise depuis un navigateur, mais elle s’exécute sur un serveur. Pour qu’elle fonctionne, il faut donc installer et maintenir une chaîne de composants sur ce serveur :
- un serveur web (Apache, Nginx) qui reçoit les requêtes HTTP/HTTPS ;
- l’interpréteur PHP qui exécute le code de l’application ;
- l’application phpMyAdmin elle-même, qui dialogue ensuite avec le SGBD.
Chacun de ces services est à installer, configurer, mettre à jour et surveiller, et chacun peut présenter des failles.
Comparatif : moins de services, moins de surface d’attaque
La surface d’attaque, c’est l’ensemble des points par lesquels un attaquant peut tenter d’entrer. Plus il y a de services exposés, plus elle est grande.
| Critère | phpMyAdmin | DBeaver |
|---|---|---|
| Services ajoutés sur le serveur | Serveur web + PHP + application phpMyAdmin | Aucun : seul le SGBD est présent |
| Exposition réseau | Port web 80/443 à ouvrir, en plus du SGBD | Port du SGBD restreint, ou fermé avec un tunnel SSH |
| Éléments à mettre à jour | Serveur web, PHP, phpMyAdmin, SGBD | SGBD, et DBeaver sur le poste d’admin |
| Cible d’attaques automatisées | Adresse /phpmyadmin connue et scannée en continu ; force brute sur la page de connexion | Pas de page web à scanner ou à attaquer |
| Chiffrement des échanges | HTTPS à configurer (certificat) côté serveur web | SSL/TLS du SGBD et tunnel SSH intégrés à la connexion |
Autoriser les connexions distantes (côté serveur)
DBeaver se connecte depuis le poste de l’administrateur, donc depuis une autre machine que le serveur. Or, par défaut, un SGBD n’accepte souvent que les connexions locales. Trois réglages sont à faire sur le serveur avant que DBeaver puisse s’y connecter.
Réglage 1 : faire écouter le SGBD sur le réseau (bind-address)
Le paramètre bind-address indique sur quelle adresse le SGBD écoute. Avec 127.0.0.1, seules les connexions de la machine elle-même sont acceptées. On le modifie dans le fichier de configuration (Debian/Ubuntu : mysqld.cnf pour MySQL, 50-server.cnf pour MariaDB ; my.ini sous Windows), puis on redémarre le service.
# fichier de configuration du serveur (section [mysqld])
bind-address = 192.168.1.10
# puis redémarrer le service
sudo systemctl restart mysql
# vérifier l'adresse d'écoute
ss -tlnp | grep 3306
On indique l’adresse du serveur sur le réseau du lycée plutôt que 0.0.0.0, qui ferait écouter le SGBD sur toutes les interfaces.
Réglage 2 : autoriser le compte depuis le poste client
Dans MySQL/MariaDB, un compte est identifié par un nom ET un hôte d’origine : 'vie_scolaire'@'localhost' et 'vie_scolaire'@'192.168.1.%' sont deux comptes différents. Un compte créé pour localhost ne peut donc pas se connecter depuis un autre poste.
CREATE USER 'vie_scolaire'@'192.168.1.%' IDENTIFIED BY 'mot_de_passe';
GRANT SELECT, INSERT, UPDATE ON lycee.etudiant TO 'vie_scolaire'@'192.168.1.%';
Le signe % est un joker : 192.168.1.% accepte les postes du réseau 192.168.1.x. On évite '%' seul, qui autoriserait n’importe quelle adresse.
Réglage 3 : ouvrir le port 3306 aux seuls postes d’administration
Le pare-feu du serveur doit laisser passer le port TCP 3306 (port par défaut de MySQL/MariaDB), mais uniquement depuis les postes autorisés.
sudo ufw allow from 192.168.1.0/24 to any port 3306 proto tcp
Sécuriser l’accès avec DBeaver
Parce qu’il se connecte directement au SGBD, DBeaver offre plusieurs options pour sécuriser la liaison :
- Tunnel SSH : onglet SSH de la connexion ; le port du SGBD n’est plus joignable depuis le réseau, tout passe par le port 22.
- SSL / TLS : les échanges entre le poste et le SGBD sont chiffrés ; mots de passe et données ne circulent pas en clair.
- Droits minimaux : se connecter avec le compte dont les droits sont strictement nécessaires (
lecture_seule,vie_scolaire…), jamais enroot: voir le cours sur GRANT/REVOKE.
Q0. Explique en deux ou trois phrases pourquoi un serveur sur lequel phpMyAdmin est installé offre plus de points d’entrée à un attaquant qu’un serveur administré avec DBeaver.
Voir une réponse possible
phpMyAdmin ajoute sur le serveur un serveur web, l’interpréteur PHP et l’application elle-même : ce sont autant de services exposés sur le réseau (ports 80/443), à maintenir à jour et susceptibles de contenir des failles. Sa page de connexion, à une adresse connue (/phpmyadmin), est en plus scannée en continu par des robots et visée par la force brute. Avec DBeaver, installé sur le poste d’administration, le serveur n’héberge que le SGBD, dont l’accès peut être restreint au réseau d’administration ou passer par un tunnel SSH.
Installer DBeaver
Télécharger et installer l’édition Community, gratuite et multiplateforme.
Télécharger DBeaver Community
DBeaver existe en plusieurs éditions. L’édition Community est gratuite, open source, et amplement suffisante pour ce cours.
- Site : dbeaver.io/download
- Windows : fichier
.exeavec assistant d’installation classique - macOS : fichier
.dmgà glisser dans le dossier Applications - Linux : paquet
.deb/.rpm, ou AppImage exécutable directement
Installer et lancer DBeaver
- Lancer l’installeur et suivre l’assistant : les options par défaut conviennent dans la quasi-totalité des cas.
- Aucun prérequis supplémentaire : DBeaver embarque son propre environnement Java.
- Au premier lancement, DBeaver propose de créer une connexion : on peut fermer cette fenêtre et la créer soi-même à l’étape suivante.
Se connecter à une base de données
Créer une connexion, renseigner les paramètres, tester et valider.
Créer une nouvelle connexion
Dans DBeaver : Fichier → Nouvelle connexion (ou l’icône « prise » dans la barre d’outils), puis choisir le type de SGBD.
| Paramètre | Valeur |
|---|---|
| Serveur (Host) | localhost |
| Port | 3306 |
| Base de données | lycee |
| Utilisateur | vie_scolaire |
| Mot de passe | (fourni par le professeur) |
Tester et valider la connexion
Avant de valider, DBeaver propose de tester la connexion pour détecter immédiatement une erreur de paramètre.
Q1. Si le test de connexion échoue avec le message « Connection refused », quelles sont les causes possibles à vérifier ?
Voir la réponse
Le service SGBD n’est peut-être pas démarré sur le serveur ; l’adresse (host) ou le port sont peut-être incorrects ; un pare-feu bloque peut-être la connexion ; ou le serveur n’autorise pas les connexions depuis cette machine (restriction par adresse IP).
Explorer une base de données
Naviguer dans l’arborescence, consulter la structure, visualiser les données.
L’arborescence : bases, tables, colonnes
- Base de données : le conteneur global (ex.
lycee) - Table : une structure de données précise (ex.
etudiant) - Colonne : un champ précis d’une table, avec son type
Consulter la structure d’une table
Un double-clic sur une table ouvre sa fiche complète, organisée en onglets : Properties, Columns, Constraints, Foreign Keys, Data, ER Diagram.
Q2. Ouvre la table etudiant dans DBeaver. Quel est le type de la colonne moyenne ? Quelle colonne porte la contrainte FK ?
Voir la réponse
moyenne est de type DECIMAL(4,2). La colonne id_classe porte la contrainte FK (clé étrangère vers la table classe).
Visualiser et éditer les données
L’onglet Data affiche le contenu de la table comme un tableur.
Le diagramme ER
L’onglet ER Diagram dessine automatiquement les tables et leurs relations, à partir des clés étrangères définies : pratique pour retrouver visuellement un MLD.
Utiliser l’éditeur SQL
Écrire et exécuter des requêtes, exporter des résultats.
Ouvrir un éditeur SQL et exécuter
SQL Editor → Nouvel éditeur SQL (ou Ctrl + ]) ouvre une zone d’écriture connectée à la base active.
SELECT nom, prenom, moyenne
FROM etudiant
WHERE id_classe = 1 -- 1 = identifiant de la classe SISR1 dans la table classe
ORDER BY moyenne DESC;
Raccourcis utiles
| Raccourci | Action |
|---|---|
| Ctrl + Entrée | Exécuter la requête sous le curseur |
| Ctrl + Espace | Déclencher l’autocomplétion |
| Ctrl + / | Commenter / décommenter la ligne |
| F5 | Rafraîchir l’arborescence |
Exporter des résultats
- CSV : format texte simple, universel
- Excel (.xlsx) : directement exploitable dans un tableur
- SQL (INSERT) : génère les instructions correspondant aux données
- JSON : format structuré, pratique pour une application web
TP guidé : à vous de jouer
Ce qu’il faut retenir
🧠 Testez vos connaissances
8 questions. Répondez puis cliquez sur « Corriger ». Rien n’est enregistré : c’est de l’auto-évaluation.
© 2026 Bruno Jousseaume. Ce cours est publié sous licence CC BY-NC-SA 4.0 : vous pouvez le partager et l’adapter en citant l’auteur et un lien vers cette page, sans usage commercial, et en partageant vos adaptations sous la même licence.