Skip to content
Advertisement

Granting privileges to a user named “Grant”?

CREATE USER 'Grant'@'localhost' IDENTIFIED BY 'bestpasswordever';

How do I grant permissions to a user who is named “Grant”? It throws an error.

GRANT INSERT, DELETE
ON table
TO Grant@localhost;

Error: ‘Grant’ is not valid at this position. Expecting an identifier.

Advertisement

Answer

You have to use backticks when using reserved keywords or identifiers with otherwise illegal characters as identifiers

GRANT INSERT, DELETE
ON table
TO `Grant`@localhost;

Apostrophes or double quotes are fine, too as per the documentation:

Quote user names and host names as identifiers or as strings, using either backticks (`), single quotation marks (‘), or double quotation marks (“). For string-quoting and identifier-quoting guidelines, see Section 9.1.1, “String Literals”, and Section 9.2, “Schema Object Names”.

…but I’m a purist and will always use backticks in MySQL, for identifiers.

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement