Bonjour,
Je fais un patch SQL qui contient ces deux requêtes :
1 2
| GRANT INSERT ON une_bdd.une_table TO '<un user>'@'<une IP>';
GRANT INSERT ON une_bdd.une_autre_table TO '<un user>'@'<une IP>'; |
Je regarde le résultat dans phpMyAdmin et je vois ça :
Éditer les privilèges : Compte d'utilisateur '<un user>'@'<une IP>' - Base de données une\_bdd
=> Il y a un \ dans le nom de la BDD alors que, bien sûr, ce \ n'existe pas dans le vrai nom de la BDD !
Comme on a constaté sur le serveur de prod la présence de privilèges accordés au même user une fois sur la BDD réelle sans \ et une fois sur la BDD inexistante avec \, dans le même patch, je tente la révocation des privilèges sur la BDD inexistante avec \ :
REVOKE ALL PRIVILEGES ON une\_bdd.* FROM '<un user>'@'<une IP>';
Résultat :
ERROR at line 17: Unknown command '\_'.
Pourtant, la syntaxe de GRANT et de REVOKE dans la doc MariaDB ne dit pas qu'il faudrait mettre entre apostrophes, guillemets ou apostrophes inversées les noms des objets sur lesquels accorder ou révoquer.
EDIT : J'ai essayé en entourant les noms des objets avec des ` mais c'est pareil.
Partager