Lorsque mysqld
démarre, les tables de droits sont lu, et chargés en mémoire : ils sont alors effectifs.
Les modifications des tables de droits qui se font avec les requêtes GRANT
, REVOKE
, ou SET PASSWORD
sont immédiatement prises en compte.
Si vous modifiez les tables de droits manuellement (INSERT
, UPDATE
, etc.), vous devrez exécuter la commande FLUSH PRIVILEGES
ou lancer mysqladmin flush-privileges
pour indiquer au serveur qu'il faut qu'il relise les tables de droits. Sinon, les changements ne seront pas effectifs avant le prochain rechargement.
Lorsque le serveur remarque que les tables de droits ont été changées, les connexions courantes sont traitées comme suit :
- Les droits de table et de colonnes sont pris en compte à la prochaine requête.
- Les droits de base sont pris en compte à la prochaine utilisation de la requête
USE nom_base_de_donnees
.
Les droits globaux et les mots de passes ne changent qu'à la prochaine connexion.