L2 Info : Bases de données
 
◃  Ch. 7 Contrôle d'accès et utilisateurs  ▹
 

Gestion des utilisateurs MySQL

  • Avec MySQL, un utilisateur correspond à un compte de connexion indiquant l'identifiant (login) et l'origine de la connexion au serveur.
  • Syntaxe : CREATE USER 'lambda'@'host' INDENTIFIED BY 'lambdapasswd'
  • La chaîne associée à host indique l'origine de la connexion autorisée pour lambda, ça peut être :
    • 'localhost' ou '127.0.0.1' : pour une connexion locale sur le serveur
    • 'unemachine.domaine.ext' : une machine spécifique identifiée par son nom
    • une adresse IP, par exemple '172.16.20.14'
    • '%.domaine.ext' : une machine présente sur un domaine particulier, ici domaine.ext
    • '172.16.20.%' ou '172.16.%' : une machine connecté à un sous-réseau
  • Ici, le caractère % est utilisé comme joker comme avec l'opérateur SQL LIKE
  • À noter : un même login peut avoir différents mots de passe en fonction de son point de connexion
  • À partir de MySQL 8, la gestion des rôles est également disponible
    CREATE USER 'lambda'@'localhost' IDENTIFIED BY 'lambdapasswd';
    CREATE ROLE 'lecteur';
    GRANT SELECT ON lambdaBD.* TO 'lecteur';
    CREATE ROLE 'editeur';
    GRANT INSERT, UPDATE, DELETE ON lambdabd.* TO 'editeur';
    GRANT 'lecteur' TO 'editeur';
    GRANT 'editeur' TO 'lambda'@'localhost';
  • Les rôles attribués à un utilisateur ne sont pas activés par défaut !
    • Possibilité de l'activé manuellement avec la commande :
      SET ROLE 'editeur';
    • possibilité de l'activer automatiquement avec la commande :
      SET DEFAULT ROLE 'editeur' TO 'lambda'@'localhost';