Partie I
SQL de base
174
© Éditions Eyrolles
database, indépendamment des utilisateurs. La structure est la même que celle de mysql.db,
à l’exception de la colonne User qui n’est pas présente. Le couple de colonnes (Host, Db)
est unique.
MySQL lit et trie les tables db (sur les colonnes Host, Db et User) et host (sur les colonnes
Host et Db) en même temps qu’il parcourt la table user. Pour les opérations relatives aux
bases (INSERT, UPDATE, etc.), MySQL interroge la table user. Si l’accès n’y est pas décrit,
la recherche se poursuit dans les tables db et host. Si la colonne Host de la table db est
renseignée en fonction de l’accès, l’utilisateur reçoit ses privilèges.
Si la colonne Host de la table db n’est pas renseignée (' '), cela signifie que la table host
énumère les machines qui sont autorisées à accéder à une base de données en particulier. Si la
machine ne correspond pas, l’accès n’est pas permis. Dans le cas contraire, les privilèges sont
valués à 'Y' à partir d’une intersection (et pas d’une union) entre les tables db et host sur le
couple (Host, Db).
La table mysql.host n’est mise à jour ni par GRANT, ni par REVOKE. Il faudra directement insérer (par INSERT), modifier (par UPDATE) ou supprimer (par DELETE) les lignes de cette table.
Elle n’est pas utilisée par la plupart des serveur MySQL, car elle est dédiée à des usages très
spécifiques (pour gérer un ensemble de machines à accès sécurisé, par exemple). Elle peut
aussi être utilisée pour définir un ensemble de machines à accès non sécurisé.
En supposant que vous déclariez une machine à accès non sécurisé : camparols.gtr.fr. Il
est possible d’autoriser l’accès sécurisé à toutes les autres machines du réseau local. Ceci en
ajoutant des enregistrements par INSERT dans la table mysql.host comme suit :
+------------------+----+---------------------------| Host
| Db | ...
+------------------+----+----------------------------| camparols.gtr.fr | % | (tous les privilèges à 'N')
| %.gtr.fr
| % | (tous les privilèges à 'Y')
+------------------+----+----------------------------Vous déclareriez l’inverse des conditions initiales en remplaçant les 'N' par des 'Y', et réciproquement. Dans tous les cas, il sera nécessaire de mettre à jour les autres tables pour affiner les
privilèges.
Tableau 5-9 Tables pour les accès distants
Caractère
Signification pour mysql.db
Signification pour mysql.host
colonne Host
colonne Db
colonne Host
colonne Db
%
toute machine
toute base
toute machine
toute base
' ' (chaîne
vide)
consultez la table
mysql.host
toute base
toute machine
toute base
Précédent

- 196/418

Suivant