Предоставление привилегий пользователю с именем «Грант»? - PullRequest
6 голосов
/ 24 апреля 2020
CREATE USER 'Grant'@'localhost' IDENTIFIED BY 'bestpasswordever';

Как предоставить разрешения пользователю с именем «Предоставить»? Выдает ошибку.

GRANT INSERT, DELETE
ON table
TO Grant@localhost;

Ошибка: «Предоставление» недопустимо в этой позиции. Ожидается идентификатор.

Ответы [ 2 ]

8 голосов
/ 24 апреля 2020

При использовании зарезервированных ключевых слов или идентификаторов с иными недопустимыми символами в качестве идентификаторов необходимо использовать обратные символы

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

Допустимы апострофы или двойные кавычки, что также соответствует документации :

Процитируйте имена пользователей и имена хостов в качестве идентификаторов или в виде строк, используя обратные кавычки (`), одинарные кавычки (') или двойные кавычки ("). Рекомендации по цитированию строк и идентификаторам см. Раздел 9.1.1, «Строковые литералы» и Раздел 9.2, «Имена объектов схемы».

... но я пурист и всегда буду использовать обратные метки в MySQL, для идентификаторов.

1 голос
/ 24 апреля 2020
GRANT INSERT,DELETE
ON table
TO 'Grant'@'localhost';

См. Раздел 6.2.4 (Указание имен учетных записей) в документации.

Синтаксис имени учетной записи: 'user_name'@'host_name'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...