Почему апострофы необходимы в Create user syntax в mysql - PullRequest
0 голосов
/ 18 декабря 2018

Я видел ответ, поставленный в вопросе: Как мне открыть MySQL на моем Raspberry Pi для внешних / удаленных подключений?

И на других сайтах, где апострофы(') в синтаксисе создания пользователя требуется.

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';

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

например:

CREATE USER jeffrey@localhost IDENTIFIED BY 'password'; 

или даже

CREATE USER jeffrey@127.0.0.1 IDENTIFIED BY 'password'; 

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

Image of create user syntax

Image of result of create user syntax

Предназначено ли это поведение или плохо так (без апострофов)?

С уважением

1 Ответ

0 голосов
/ 18 декабря 2018

Согласно dev.mysql.com/doc/refman/5.7/en/account-names.html:

Имя пользователя и имя хоста не должны указываться в кавычках, если они допустимы как не заключенные в кавычкиидентификаторы.Кавычки необходимы для указания строки user_name, содержащей специальные символы (например, пробел или -), или строки host_name, содержащей специальные символы или символы подстановки (например,. Или%);например, 'test-user'@'%.com'.

Итак, предположительно, вы не можете использовать имя table без кавычек:

CREATE USER table@127.0.0.1 ...

Но вы можете использовать foobar:

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