Un utilisateur mysql se connecte de Server2 à Server1 via SSL (mysql 5.0.77).
Voici les subventions pour cet utilisateur sur le serveur 1, (le serveur 2 a une ip dans la plage xx.xx.xx.%)
mysql> show grants for user@'xx.xx.xx.%';
+-------------------------------------------------------------------------------------------------------------------------------+
| Grants for user@xx.xx.xx.% |
+-------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user'@'xx.xx.xx.%' IDENTIFIED BY PASSWORD 'xxx' REQUIRE SSL |
J'ai fait un flush privileges
Mais même sans privilèges, je peux afficher les bases de données, les tables et les sélections. Comment est-ce possible ? !!!
J'ai vérifié que dans 'show full processlist' l'utilisateur n'est pas toujours connecté, nouvelle connexion mysql. Une fois la connexion ouverte, je fais un 'show grants', la permission effective est la même... USAGE.
--
La table mysql.db a une entrée pour cet utilisateur qui dit qu'il a select, insert, update et delete dans la base de données. S'agit-il d'une sorte de table de permission cachée ? Comment ces permissions ont-elles pu se retrouver là au lieu de mysql.user ?