Connexions dans DBeaver
Se connecter à Supabase avec un outil client
Notions théoriques
Pourquoi utiliser un client comme DBeaver ?
Supabase propose une interface web très complète, mais pour certaines opérations, il est plus pratique d’utiliser un client PostgreSQL externe comme DBeaver. Cet outil permet de :
- gérer plusieurs connexions à différentes bases de données,
- écrire et sauvegarder des requêtes SQL complexes,
- inspecter les données et les schémas de manière ergonomique,
- comparer des bases locales et distantes,
- tester facilement les permissions et les rôles.
DBeaver est un client SQL open-source compatible avec PostgreSQL, MySQL, SQLite, Oracle, etc.
Informations nécessaires pour se connecter à Supabase
Pour établir une connexion entre DBeaver et une base Supabase, il faut récupérer les informations de connexion suivantes :
- host : l’URL de la base PostgreSQL (fournie par Supabase),
- port : généralement
5432
pour PostgreSQL, - nom de la base : visible dans l’interface Supabase (souvent
postgres
), - utilisateur : le nom d’utilisateur PostgreSQL (généralement
postgres
), - mot de passe : généré automatiquement à la création du projet,
- SSL : doit être activé pour sécuriser la connexion.
Ne jamais désactiver SSL pour une base distante. Cela rend les données vulnérables aux interceptions réseau.
Où trouver ces informations dans Supabase ?
- Aller dans le Dashboard Supabase.
- Cliquer sur [Settings] > [Database].
- Repérer les champs suivants :
Connection string
(PostgreSQL)DB password
Host
Port
Database
Organisation des connexions dans DBeaver
Dans le cadre de ce projet, il est pertinent de créer une connexion par rôle :
supabase_guest
supabase_student
supabase_teacher
supabase_admin
supabase_super-admin
Cela permet de tester facilement les permissions RLS en changeant simplement de connexion.
Sécuriser ses connexions
- Toujours activer SSL dans les paramètres de connexion.
- Ne pas stocker les mots de passe en clair dans les fichiers de configuration.
- Utiliser un gestionnaire de mots de passe (ex : Bitwarden, KeePass) pour stocker les credentials.
- Ne jamais partager les identifiants de connexion ou les tokens JWT.
DBeaver propose une option pour chiffrer localement les mots de passe enregistrés.
Bonnes pratiques de test avec DBeaver
- Tester les requêtes
SELECT
,INSERT
,UPDATE
,DELETE
selon le rôle. - Vérifier que les politiques RLS fonctionnent comme prévu.
- Utiliser les onglets SQL pour documenter les tests.
- Ne pas exécuter de requêtes destructrices sans backup.
Exemple pratique
Il est possible de configurer DBeaver pour se connecter à une base Supabase distante.
Étape 1 : installer DBeaver
Télécharger DBeaver Community depuis le site officiel :
👉 https://dbeaver.io/download/
Installer la version adaptée à votre système (Windows, macOS, Linux).
Étape 2 : créer une nouvelle connexion PostgreSQL
- Ouvrir DBeaver.
- Cliquer sur "Nouvelle connexion".
- Choisir PostgreSQL.
- Renseigner les champs de connexion :
- Host : l’URL du projet Supabase (sans
https://
) - Port :
5432
- Database : généralement
postgres
- Username :
postgres
- Password : celui fourni dans Supabase > Settings > Database
- Host : l’URL du projet Supabase (sans
Étape 3 : activer SSL
- Aller dans l’onglet SSL.
- Cocher "Use SSL".
- Choisir "Require" comme mode SSL.
- Laisser les autres champs vides si vous n’avez pas de certificat spécifique.
Étape 4 : nommer la connexion
Donner un nom clair à la connexion, par exemple :
supabase_guest
supabase_student
supabase_teacher
supabase_admin
supabase_super-admin
Cela permet de tester les rôles plus facilement.
Étape 5 : tester la connexion
- Cliquer sur "Test Connection".
- Vérifier que tout fonctionne.
- Cliquer sur "Finish" pour enregistrer la connexion.
Étape 6 : exécuter une requête simple
- Ouvrir la connexion.
- Créer un nouvel éditeur SQL.
- Lancer une requête simple :
SELECT * FROM profiles;
Vérifier que les données visibles correspondent au rôle simulé.
Étape 7 : répéter pour chaque rôle
Créer une connexion par rôle, en changeant le JWT simulé ou le contexte d’exécution si votre Supabase le permet (via SET LOCAL jwt.claims.sub
dans un éditeur SQL).
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif du TP
Configurer 5 connexions sécurisées dans DBeaver (une par rôle) à une base Supabase existante, tester les connexions, et valider l'accès aux données selon les rôles définis dans les étapes précédentes.
Étape 1 : Installer DBeaver Community
Télécharger la version gratuite de DBeaver adaptée à votre système d’exploitation (Windows, macOS, Linux) depuis :
👉 https://dbeaver.io/download/
Installer l'application.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 2 : Récupérer les informations de connexion dans Supabase
Se connecter à votre projet Supabase, puis :
- Aller dans l’onglet Settings > Database.
- Noter les informations suivantes :
Host
(ex.db.abcd.supabase.co
)Port
(par défaut :5432
)Database
(souventpostgres
)User
(souventpostgres
)Password
(visible dans le champDB password
)
Une solution
Vous devez être connecté pour voir le contenu.
Étape 3 : Créer une connexion PostgreSQL dans DBeaver
- Ouvrir DBeaver.
- Cliquer sur Nouvelle connexion.
- Choisir PostgreSQL.
- Renseigner les champs :
- Hôte :
db.XXXXX.supabase.co
- Port :
5432
- Base de données :
postgres
- Utilisateur :
postgres
- Mot de passe : celui récupéré à l’étape précédente
- Hôte :
- Cliquer sur Suivant.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 4 : Activer SSL dans les paramètres de connexion
- Dans la configuration de la connexion, aller dans l’onglet SSL.
- Cocher "Use SSL".
- Choisir le mode "Require".
- Laisser les autres champs vides.
- Cliquer sur Test de connexion.
- Si tout fonctionne, cliquer sur Terminer.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 5 : Renommer la connexion selon le rôle
Dans DBeaver :
- Clic droit sur la connexion > Renommer.
- Donner un nom explicite, par exemple :
supabase_super-admin
.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 6 : Dupliquer la connexion pour chaque rôle
Créer 5 connexions distinctes avec le même mot de passe et les mêmes paramètres, mais en changeant le nom de la connexion :
supabase_guest
supabase_student
supabase_teacher
supabase_admin
supabase_super-admin
Une solution
Vous devez être connecté pour voir le contenu.
Étape 7 : Tester l’accès aux données avec chaque connexion
- Ouvrir une connexion (clic droit > Se connecter).
- Ouvrir un nouvel éditeur SQL.
- Lancer la requête :
SELECT * FROM profiles;
- Vérifier que les données affichées correspondent aux permissions du rôle simulé.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 8 : Documenter les résultats des tests
Créer un fichier texte ou Markdown pour noter :
- Les rôles testés
- Les requêtes exécutées
- Les résultats obtenus
- Les anomalies éventuelles
Une solution
Vous devez être connecté pour voir le contenu.
Étape 9 : Sécuriser les mots de passe
- Ne pas stocker les mots de passe en clair dans un fichier texte.
- Utiliser un gestionnaire de mots de passe (ex : Bitwarden, KeePass).
- Dans DBeaver, activer le chiffrement local des mots de passe (option dans les préférences).
Une solution
Vous devez être connecté pour voir le contenu.
Étape 10 : Vérifier que toutes les connexions sont fonctionnelles
- Tester chaque connexion avec un
SELECT
simple. - Vérifier que la connexion s’établit sans erreur.
- Noter les éventuelles erreurs (mauvais mot de passe, SSL, etc.).
Une solution
Vous devez être connecté pour voir le contenu.