CREATE USER 'Grant'@'localhost' IDENTIFIED BY 'bestpasswordever';
Comment accorder des autorisations à un utilisateur nommé "Accorder"? Il jette une erreur.
GRANT INSERT, DELETE
ON table
TO Grant@localhost;
Erreur: "Grant" n'est pas valide à cette position. En attente d'un identifiant.
Vous devez utiliser des backticks lorsque vous utilisez des mots-clés réservés ou des identifiants avec des caractères par ailleurs illégaux comme identifiants
GRANT INSERT, DELETE
ON table
TO `Grant`@localhost;
Les apostrophes ou les guillemets doubles conviennent également à la documentation :
Citez les noms d'utilisateur et les noms d'hôte sous forme d'identificateurs ou de chaînes, en utilisant des accents inversés (`), des guillemets simples (') ou des guillemets doubles ("). Pour connaître les consignes relatives aux guillemets de chaînes et d'identificateurs, reportez-vous à la Section 9.1.1, "Littéraux de chaîne" et Section 9.2, "Noms des objets de schéma".
... mais je suis puriste et j'utiliserai toujours des backticks dans MySQL, pour les identifiants.
GRANT INSERT,DELETE
ON table
TO 'Grant'@'localhost';
Voir Section 6.2.4 (Spécification des noms de compte) dans la documentation.
La syntaxe du nom de compte est 'nom_utilisateur' @ 'nom_hôte'.