| Rôle du système de privilèges <<< | Comment fonctionne le système de droits | Droits fournis par MySQL >>> | 
| 5.5 Règles de sécurité et droits d'accès au serveur MySQL 5 Administration du serveur Manuel de Référence MySQL 4.1 : Version Française . Rôle du système de privilèges ->Comment fonctionne le système de droits . Droits fournis par MySQL . Se connecter au serveur MySQL . Contrôle d'accès, étape 1 : Vérification de la connexion . Contrôle d'accès, étape 2 : Vérification de la requête . Quand les modifications de privilèges prennent-ils effets ? . Causes des erreurs Access denied . Hashage de mots de passe en MySQL 4.1 | 5.5.2 Comment fonctionne le système de droitsLe système de droits de MySQL s'assure que les utilisateurs font exactement ce qu'ils sont supposés pouvoir faire dans la base. Lorsque vous vous connectez au serveur, vous identité est déterminée par l'hôte d'où vous vous connectez et le nom d'utilisateur que vous spécifiez . Le système donne les droits en fonction de votre identité et de ce que vous voulez faire . MySQL considère votre nom d'hôte et d'utilisateur pour vous identifier, car il n'y pas que peu de raisons de supposer que le même nom d'utilisateur appartient à la même personne, quelque soit son point de connexion sur Internet. Par exemple, l'utilisateur joe qui se connecte depuis office.com n'est pas forcément la même personne que joe qui se connecte depuis elsewhere.com . MySQL gère cela en vous aidant à distinguer les différents utilisateurs et hôtes qui ont le même nom : vous pourriez donner des droits à joe lorsqu'il utilise sa connexion depuis office.com , et un autre jeu de droits lorsqu'il se connecte depuis elsewhere.com .Le contrôle d'accès de MySQL se fait en deux étapes : 
 Si vos droits ont changé (par vous-mêmes ou bien par un administrateur), durant votre connexion, ces changements ne prendront peut être effets qu'à la prochaine requête. Voyez la section Quand est-ce que les droits prennent effets pour plus détails.Le serveur stocker les droits dans des tables de droits, situées dans la base mysql . Le serveur lit le contenu de ces tables en mémoire lorsqu'il démarre, et les relit dans différentes circonstances, détaillées dans Quand est-ce que les droits prennent effets . Le contrôle d'accès se fait par rapport aux tables en mémoire. Normalement, vous manipulez le contenu des tables indirectement, via les commandes GRANT et REVOKE pour configurer des comptes et des droits. Syntaxe de GRANT et REVOKE . La discussion de cette section décrit la structure des tables de droits, et comment elle interagit avec les clients.Le serveur utilise les tables user , db et host dans la base mysql durant les deux étapes. Les champs de cette table sont les suivants : 
 
 Chaque table de droit contient des champs d'identification et des champs de droits. 
 Les champs d'identification sont des chaînes, déclarées comme suit. La valeur par défaut de chacun des champs est la chaîne vide. 
 Avant MySQL 3.23, la colonne Db valait CHAR(32) dans certaines tables, et CHAR(60) dans d'autres.Pour vérifier les accès, la comparaison sur les valeurs de la colonne Host sont sensibles à la casse. User , Password , Db et Table_name sont insensibles. Les valeurs de Column_name sont insensibles depuis MySQL 3.22.12. Dans les tables user , db et host , tous les champs de droits sont déclarés avec le type ENUM('N','Y') : il peuvent prendre tous les valeurs de 'N' (non) ou 'Y' (oui, YES), et la valeur par défaut est 'N' .Dans les tables tables_priv et columns_priv , les champs de droits sont déclarés comme des champs de type SET : 
 
 Notez que les droits d'administration tels que ( RELOAD , SHUTDOWN , etc...) ne sont spécifiés que dans la table user . En effet, ces opérations sont des opérations au niveau serveur, et ne sont pas liées à une base de données, ce qui fait qu'il n'y a pas de raison de les lier avec les autres tables. En fait user doit être consulté pour déterminer les autorisations d'administration.Le droit de FILE est spécifié par la table user . Ce n'est pas un droit d'administration, mais votre capacité à lire ou écrire des fichiers sur le serveur hôte et dépendant de la base à laquelle vous accédez. Le serveur mysqld lit le contenu des tables de droits une fois, au démarrage. Lorsqu'il y a des modifications dans les tables, elles prennent effet tel qu'indiqué dans Quand est-ce que les droits prennent effets .Lorsque vous modifiez le contenu des tables de droits, c'est une bonne idée que de s'assurer que vous avez bien configuré les droits qui vous intéressent. Un moyen de vérifier les droits pour un compte est d'utiliser la commande SHOW GRANTS . Par exemple, pour déterminer les droits qui sont donnés à un compte avec les valeurs Host et User de pc84.example.com et bob , utilisez cette commande : 
 | 
| << | Comment fonctionne le système de droits | >> | 
| Rôle du système de privilèges | Règles de sécurité et droits d'accès au serveur MySQL | Droits fournis par MySQL |