Задавайте вопросы, мы ответим
Вы не зашли.
В документации написано:
Пустое значение в поле Host означает, что к этой привилегии должна быть добавлена запись
в таблице host, совпадающая с заданным именем хоста.
Делаю пустое знаение в поле Host, в таблице host создаю только 1 запись - localhost.
Но начинает пускать с любого хоста.
В чем ошибка?
Неактивен
Странно. А это точно связано с таблицей host? Если в ней все запретить, то будет пускать или нет?
Неактивен
А это точно связано с таблицей host? Если в ней все запретить, то будет пускать или нет?
Как запретить?
Удалил все из таблицы host - все равно пускает.
Такое ощущение что пустое поле в таблице user трактуется как % - но это противоречит документации.
Версия MySQL 5.1.54 (FreeBSD).
Неактивен
Если в таблице host все привилегии указать 'N', это будет означать запрет. В вашем случае дело не в Host. Пустое имя хоста не должно означать любой хост. Делали ли FLUSH PRIVILEGES; после обновления таблиц?
Неактивен
Делали ли FLUSH PRIVILEGES; после обновления таблиц?
Конечно.
Неактивен
Может быть есть еще юзер, который имеет право логиниться с любого хоста? Если пустой хост заменить на xxx, останется ли возможность войти?
Неактивен
Может быть есть еще юзер, который имеет право логиниться с любого хоста?
Нет, пустое поле только у одного.
Но идея была сделать пустые поля у всех пользователей, и в таблице host указать с каких IP можно всем соединяться.
Если пустой хост заменить на xxx, останется ли возможность войти?
После замены на ххх удаленный вход перестает работать (что логично).
Отредактированно icb (21.07.2011 22:57:26)
Неактивен
Это странно, я добавил у себя myuser@'', он не смог коннектиться ни с какого хоста. host используете в паре с таблицей db, как написано в документации http://dev.mysql.com/doc/refman/5.5/en/ … cture.html ?
Неактивен
host используете в паре с таблицей db, как написано в документации http://dev.mysql.com/doc/refman/5.5/en/ … cture.html ?
До этого я еще не дошел - это второй этап (сначала ведь проверяется таблица user и только потом db).
В новой документации я вообще не нашел ситуации что поле host у таблицы user может быть пустым. Похоже что такого функционала больше нет и в зависимости от версии пустое поле трактуется по разному.
Хотя в phpMyAdmin присутствует вариант указать Use Host Table вместо имени хоста.
Как же тогда можно указать несколько разрешенных хостов для пользователя (не создавая дубля пользователя)?
Неактивен
Несколько хостов потребуют дублировать пользователя. Еще можно использовать процент (например, '192.168.3.%'), но такое использование очень ограничено (и не уверен, что безопасно - может пройти что-то типа 192.168.3.cracker.ru)
Неактивен
Несколько хостов потребуют дублировать пользователя.
Довольно странное ограничение
Да и phpMyAdmin вроде позволяет использовать одного пользователя.
и не уверен, что безопасно - может пройти что-то типа 192.168.3.cracker.ru
Такие имена запрещены (если конечно нет бага как с пустым именем хоста).
Неактивен
phpMyAdmin не показатель.
Можете ли сделать юз-кейс для повтора баги? То есть набор шагов, который приводит к созданию такого юзера, подключаемого с любого хоста?
Неактивен
Можете ли сделать юз-кейс для повтора баги? То есть набор шагов, который приводит к созданию такого юзера, подключаемого с любого хоста?
Легко
1. Создаю нового пользователя в пустым полем Host
CREATE USER 'atest'@'' IDENTIFIED BY '***';
GRANT USAGE ON * . * TO 'atest'@'' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
2. Пытаюсь подключиться с удаленного сервера - успешно пускает.
3. Указываю пользователю Host = localhost и пускать удаленно перестает. Локально соединяется без проблем.
Неактивен
Не получается повторить. ERROR 2003 (HY000): Can't connect to MySQL server on 'myserver' (111).
Версия MySQL 5.0.45. Какая у вас версия?
Неактивен
MySQL 5.1.54 (FreeBSD)
Неактивен
Пишите на bugs.mysql.com, так как по идее не должен пускать при пустом хосте.
Неактивен
А на 5.0.45 работает указание списка IP в таблице host для пользователя (а не для БД)?
Неактивен
Судя по документации все так же, как в 5.1 http://dev.mysql.com/doc/refman/5.0/en/ … cture.html но не проверял.
Неактивен