PRATIQUE OUTILS 
MySQL : les privilèges utilisateur
 
Découvrez les grands principes et le fonctionnement fondamental du système d'attribution des droits avec MySQL. (30/08/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Les privilèges sont les autorisations (ou droits) accordées à un utilisateur MySQL de lancer certaines requêtes ou d'accéder à certaines tables. On les divise en privilèges systèmes pour les requêtes SQL, et en privilèges objet pour les accès aux tables notamment.

Ces privilèges sont par ailleurs regroupés en plusieurs niveaux : global (toutes les bases du système, mais également les bases internes mysql, test et information_schema), base, table, colonne, routine (pour les procédures stockées). Les droits, ou familles de droits, sont validés non seulement vis-à-vis de l'utilisateur (par défaut, root), mais également par son adresse d'origine (localhost, adresse IP, bloc d'adresses IP...).

Ainsi, les utilisateurs authentifiés peuvent se voir assigner des droits d'utilisation sur les commandes SQL depuis l'ensemble de l'installation MySQL jusqu'à la colonne précise d'une table donnée. Chaque connexion et chaque requête par connexion sont donc vérifiées auprès des tables internes de gestion des privilèges de MySQL. Si un utilisateur n'est pas connecté avec la bonne adresse d'origine, ces droits peuvent ne pas lui être attribués.

L'attribution de privilèges se fait avec la commande GRANT, et la révocation avec REVOKE. Par défaut, seul l'utilisateur root peut utiliser ses commandes, et donc attribuer le droit de les utiliser à d'autres utilisateurs. SHOW GRANT, enfin, affiche les droits relatifs à un utilisateur.

GRANT ALL PRIVILEGES ON clients.* TO 'marketing'@'localhost'
GRANT ALL PRIVILEGES ON *.* to 'utilisateur'@'machine' IDENTIFIED BY 'motDePasse';

REVOKE ALL PRIVILEGES, GRANT OPTION FROM utilisateur  

SHOW GRANT FOR 'root'@'localhost';
SHOW GRANT
FOR CURRENT_USER;

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page