Tutoriels gratuits et ouverts à toutes et à tous · conçus au Lycée Chevrollier — AngersÀ propos

Installer et prendre en main DBeaver

Comprendre pourquoi DBeaver expose moins le serveur que phpMyAdmin, autoriser les connexions distantes, puis installer DBeaver, se connecter, explorer la base et exécuter ses premières requêtes.

Bases de données✎ B. Jousseaume📅 16 octobre 2026 · mis à jour le 16 octobre 2026⏱ 2 h📶 Débutant

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èrephpMyAdminDBeaver
Services ajoutés sur le serveurServeur web + PHP + application phpMyAdminAucun : seul le SGBD est présent
Exposition réseauPort web 80/443 à ouvrir, en plus du SGBDPort du SGBD restreint, ou fermé avec un tunnel SSH
Éléments à mettre à jourServeur web, PHP, phpMyAdmin, SGBDSGBD, et DBeaver sur le poste d’admin
Cible d’attaques automatiséesAdresse /phpmyadmin connue et scannée en continu ; force brute sur la page de connexionPas de page web à scanner ou à attaquer
Chiffrement des échangesHTTPS à configurer (certificat) côté serveur webSSL/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 en root : 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 .exe avec 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ètreValeur
Serveur (Host)localhost
Port3306
Base de donnéeslycee
Utilisateurvie_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

RaccourciAction
Ctrl + EntréeExécuter la requête sous le curseur
Ctrl + EspaceDéclencher l’autocomplétion
Ctrl + /Commenter / décommenter la ligne
F5Rafraî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.

1. Sur quel site télécharge-t-on DBeaver Community ?

💬 L’édition Community, gratuite et open source, se télécharge sur dbeaver.io/download.

2. Quel raccourci exécute la requête sous le curseur dans l’éditeur SQL ?

💬 Ctrl + Entrée (⌘ + Entrée sur Mac). Ctrl + Espace déclenche l’autocomplétion, F5 rafraîchit l’arborescence.

3. Quel onglet permet de visualiser automatiquement les relations entre les tables ?

💬 L’onglet ER Diagram dessine les tables et leurs relations à partir des clés étrangères définies.

4. Pourquoi faut-il être prudent en éditant des données directement dans l’onglet Data ?

💬 C’est pratique pour une correction ponctuelle, mais moins traçable et moins contrôlé qu’une requête UPDATE explicite.

5. Pourquoi se connecter avec le compte vie_scolaire plutôt qu’avec root ?

💬 Un compte aux droits limités ne peut abîmer que ce à quoi il a accès.

6. Pourquoi DBeaver réduit-il la surface d’attaque par rapport à phpMyAdmin ?

💬 phpMyAdmin impose serveur web + PHP + application, autant de services à exposer et à mettre à jour ; DBeaver est installé sur le poste d’administration.

7. Pourquoi un compte créé avec @'localhost' ne peut-il pas se connecter depuis un autre poste ?

💬 'vie_scolaire'@'localhost' et 'vie_scolaire'@'192.168.1.%' sont deux comptes distincts.

8. Avec bind-address = 127.0.0.1, comment DBeaver peut-il quand même atteindre le SGBD depuis un autre poste ?

💬 Le port 3306 reste fermé au réseau ; tout passe par le port 22, chiffré.

© 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.

Pour aller plus loin