Reputation: 69
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.
Upvotes: 6
Views: 471
Reputation: 220952
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.
Upvotes: 7
Reputation: 566
GRANT INSERT,DELETE
ON table
TO 'Grant'@'localhost';
See Section 6.2.4 (Specifying Account Names) in the documentation.
Account name syntax is 'user_name'@'host_name'.
Upvotes: 1