是否授予名为“ Grant”的用户特权?

时间:2020-04-24 18:07:07

标签: mysql sql grant

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

如何授予名为“ Grant”的用户权限?会引发错误。

GRANT INSERT, DELETE
ON table
TO Grant@localhost;

错误:“授予”在此位置无效。需要一个标识符。

2 个答案:

答案 0 :(得分:8)

在使用保留关键字或带有非法字符的标识符作为标识符时,您必须使用反引号

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

根据the documentation,冒号或双引号也可以:

使用反引号(`),单引号(')或双引号(“)将用户名和主机名用作标识符或字符串。有关字符串引用和标识符引用的准则,请参见9.1节。 .1,“字符串文字”和第9.2节,“模式对象名称”。

...但是我是一个纯粹主义者,将始终在MySQL中使用反引号作为标识符。

答案 1 :(得分:1)

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

请参阅文档中的Section 6.2.4 (Specifying Account Names)

帐户名称语法为“用户名” @“主机名”。