Création d’un utilisateur et gestion des droits
💡 Sujet
Créer un utilisateur PostgreSQL directement via SQL et gérer ses droits.
Pratique pour gérer les accès à une base ou un schéma de manière sécurisée.
🚫 Mauvaise pratique
- Créer un utilisateur directement via l’interface ou manuellement sans définir ses droits correctement.
- Donner trop de droits par défaut peut poser un problème de sécurité.
👉 Risques :
- Accès non autorisé à des tables sensibles,
- Modification involontaire des données,
- Problèmes de maintenance sur les droits utilisateurs.
❌ Exemple à éviter
-- Création d'un utilisateur sans gérer les droits
CREATE USER mon_user WITH PASSWORD 'mon_password';Cet utilisateur n’a pas de droits explicites et ne peut rien faire,
ou pourrait recevoir des droits trop larges par défaut selon la configuration.
✅ Bonne pratique : création et droits précis
Créer l’utilisateur puis gérer finement ses droits sur la base, le schéma et les tables.
✅ Exemple correct
-- Créer un utilisateur avec mot de passe
CREATE USER mon_user WITH PASSWORD 'mon_password';
-- Donner tous les droits sur une base
GRANT ALL PRIVILEGES ON DATABASE ma_base TO mon_user;
-- Donner tous les droits sur un schéma spécifique
GRANT ALL PRIVILEGES ON SCHEMA mon_schema TO mon_user;
-- Droits spécifiques sur les tables existantes
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA mon_schema TO mon_user;
-- Droits par défaut pour les nouvelles tables
ALTER DEFAULT PRIVILEGES IN SCHEMA mon_schema
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO mon_user;🧩 Résumé
CREATE USER: crée un login PostgreSQL.GRANT: permet de gérer finement les droits sur la base, le schéma ou les tables.ALTER DEFAULT PRIVILEGES: pratique pour que les nouvelles tables héritent automatiquement des droits.- ✅ Toujours définir les droits de manière précise pour éviter les problèmes de sécurité et de maintenance.