Подтвердить что ты не робот

Пользователи пользователей '@'% 'и' User '@' localhost 'не совпадают?

Я создал пользователя для первой команды, но не смог выполнить вход в систему через localhost (linux). Эта ссылка mysqldoc указывает, что мне нужно создать второго пользователя с тем же именем, но используя синтаксис во втором блоке команд.

mysql> CREATE USER 'myuser'@'%' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON my_upload.* TO 'myuser'@'%' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)

Итак, я попробовал это, как показано ниже, и это действительно сработало. Но являются ли эти два отдельных пользователя? Если я изменю pw для одного, будет ли другая синхронизирована, или они действительно являются отдельными пользователями?

mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON my_upload.* TO  'myuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
4b9b3361

Ответ 1

[email protected]% разрешает доступ из всех мест. [email protected] будет разрешать доступ только с localhost. Это два разных пользователя с двумя разными паролями (хотя вы можете установить их на один и тот же пароль, но если вы обновите один пароль, другой не будет автоматически обновляться)

Ответ 2

В принципе, да, это два разных пользователя с (возможно) разными разрешениями и (возможно) разными паролями.

  • myuser @%: Пользователь myuser, подключающийся с любого хоста.
  • myuser @localhost: Пользователь myuser, подключающийся только к localhost.

Хорошее чтение - это руководство MySQL о доступе к подключению, оно демонстрирует, как оно работает.

Ответ 3

Даже если они будут означать одно и то же, или если кто-то будет включать другой, они действительно разделяют пользователей!

13.7.1.3. Синтаксис GRANT

MySQL и стандартные версии SQL GRANT

Самые большие различия между версиями MySQL и стандартного SQL GRANT:

  • MySQL связывает привилегии с комбинацией имени хоста и имя пользователя, а не только имя пользователя.

Ответ 4

Я столкнулся с той же ситуацией, что и описано. Добавление записи для [email protected]% не работало.

Тем не менее добавление записи для того же [email protected] снова начнет работать. Это казалось неинтуитивным, учитывая наше понимание шаблона %!

Проблема, упомянутая выше Кентом, заключалась в следующем: У нас была строка ввода в таблице users для host:localhost , но user была пустой. По-видимому, это было разрешено для правила для %@localhost, которое использовалось как совпадение перед моим правилом [email protected]%.

Краткий ответ - проверьте наличие пустых или подстановочных имен в таблице user.

... Я понятия не имею, как этот пробел попал туда или если он был намеренным.