|
|
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;
|
|
 |