Utilisateur de base de données : Compte qui permet d'accéder à une base de données avec des droits spécifiques.
- Se connecter en tant qu'administrateur
- Créer le nouvel utilisateur avec mot de passe
- Configurer les options de sécurité
- Accorder les privilèges nécessaires
On utilise CREATE USER 'lecteur'@'localhost' pour créer le compte
On spécifie un mot de passe fort avec IDENTIFIED BY
L'utilisateur ne peut se connecter que depuis localhost
Utilisateur 'lecteur' créé avec accès local et mot de passe sécurisé
• Principe de moindre privilège : Accorder uniquement les droits nécessaires
• Mot de passe fort : Longueur, majuscules, minuscules, chiffres et caractères spéciaux
• Restriction géographique : Limiter l'accès à certaines IP ou hôtes
Privilèges : Permissions spécifiques accordées à un utilisateur pour effectuer certaines actions sur des objets de la base.
On accorde SELECT sur les tables spécifiques
On retire les droits INSERT, UPDATE, DELETE pour protéger les données
On utilise SHOW GRANTS pour confirmer les droits accordés
Utilisateur 'lecteur' autorisé uniquement en lecture sur certaines tables
• SELECT seulement : L'utilisateur ne peut modifier les données
• Restriction granulaire : Droits accordés sur des objets spécifiques
• Vérification continue : Vérifier régulièrement les permissions
Rôle : Ensemble prédéfini de privilèges pouvant être assigné à plusieurs utilisateurs.
On crée un rôle 'analyste' pour regrouper les permissions
On accorde les droits SELECT sur toutes les tables de la base
On assigne le rôle à l'utilisateur 'marie'
On configure le rôle par défaut pour l'utilisateur
Rôle 'analyste' créé et attribué à l'utilisateur 'marie'
• Gestion centralisée : Les rôles facilitent la gestion des droits
• Scalabilité : Ajouter un utilisateur à un rôle est plus efficace que d'attribuer individuellement
• Maintenance : Modifier un rôle met à jour les droits de tous ses membres
Hashage : Processus de transformation d'un mot de passe en une chaîne de caractères unique et irreversible.
On utilise bcrypt car plus sécurisé que SHA-256 pour les mots de passe
On génère un sel aléatoire pour chaque mot de passe
On compare le hash de l'entrée utilisateur avec le hash stocké
Mot de passe hashé et vérifié de manière sécurisée
• Salage : Chaque mot de passe doit être salé pour éviter les attaques par rainbow tables
• Algorithme approprié : bcrypt, Argon2 ou PBKDF2 sont préférables à SHA-256
• Jamais en clair : Les mots de passe ne doivent jamais être stockés en clair
Connexion sécurisée : Méthodes permettant d'accéder à une base de données distante sans compromettre la sécurité.
On active SSL sur le serveur MySQL avec des certificats valides
On crée un utilisateur avec REQUIRE SSL pour forcer la connexion chiffrée
On accorde uniquement les droits nécessaires et on révoque les accès non sécurisés
Accès distant sécurisé avec SSL et droits restreints
• Chiffrement obligatoire : Toutes les communications doivent être chiffrées
• Restriction IP : Limiter l'accès aux plages IP autorisées
• Moindre privilège : Accorder uniquement les droits strictement nécessaires
- Mots de passe : Longueur minimale de 12 caractères avec diversité
- Revues de sécurité : Vérifier régulièrement les droits des utilisateurs
- Journalisation : Activer les logs pour surveiller les accès
- Isolation : Séparer les environnements de production et de développement
- Le principe de moindre privilège doit être appliqué à chaque utilisateur
- Les mots de passe doivent être hachés et salés, jamais stockés en clair
- Les connexions distantes doivent être chiffrées avec SSL/TLS
- Les rôles facilitent la gestion des droits de manière scalable