SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.07.2011 16:35:52

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Использование таблицы host для пользователя

В документации написано:

Пустое значение в поле Host означает, что к этой привилегии должна быть добавлена запись
в таблице host, совпадающая с заданным именем хоста.

Делаю пустое знаение в поле Host, в таблице host создаю только 1 запись - localhost.
Но начинает пускать с любого хоста.

В чем ошибка?

Неактивен

 

#2 21.07.2011 18:28:39

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Странно. А это точно связано с таблицей host? Если в ней все запретить, то будет пускать или нет?

Неактивен

 

#3 21.07.2011 22:12:07

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

А это точно связано с таблицей host? Если в ней все запретить, то будет пускать или нет?

Как запретить?
Удалил все из таблицы host - все равно пускает.
Такое ощущение что пустое поле в таблице user трактуется как % - но это противоречит документации.
Версия MySQL 5.1.54 (FreeBSD).

Неактивен

 

#4 21.07.2011 22:17:48

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Если в таблице host все привилегии указать 'N', это будет означать запрет. В вашем случае дело не в Host. Пустое имя хоста не должно означать любой хост. Делали ли FLUSH PRIVILEGES; после обновления таблиц?

Неактивен

 

#5 21.07.2011 22:25:07

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

Делали ли FLUSH PRIVILEGES; после обновления таблиц?

Конечно.

Неактивен

 

#6 21.07.2011 22:41:27

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Может быть есть еще юзер, который имеет право логиниться с любого хоста? Если пустой хост заменить на xxx, останется ли возможность войти?

Неактивен

 

#7 21.07.2011 22:55:04

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

Может быть есть еще юзер, который имеет право логиниться с любого хоста?

Нет, пустое поле только у одного.
Но идея была сделать пустые поля у всех пользователей, и в таблице host указать с каких IP можно всем соединяться.

Если пустой хост заменить на xxx, останется ли возможность войти?

После замены на ххх удаленный вход перестает работать (что логично).

Отредактированно icb (21.07.2011 22:57:26)

Неактивен

 

#8 21.07.2011 22:59:45

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Это странно, я добавил у себя myuser@'', он не смог коннектиться ни с какого хоста. host используете в паре с таблицей db, как написано в документации http://dev.mysql.com/doc/refman/5.5/en/ … cture.html ?

Неактивен

 

#9 21.07.2011 23:27:13

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

host используете в паре с таблицей db, как написано в документации http://dev.mysql.com/doc/refman/5.5/en/ … cture.html ?

До этого я еще не дошел - это второй этап (сначала ведь проверяется таблица user и только потом db).
В новой документации я вообще не нашел ситуации что поле host у таблицы user может быть пустым. Похоже что такого функционала больше нет и в зависимости от версии пустое поле трактуется по разному.

Хотя в phpMyAdmin присутствует вариант указать Use Host Table вместо имени хоста.
Как же тогда можно указать несколько разрешенных хостов для пользователя (не создавая дубля пользователя)?

Неактивен

 

#10 22.07.2011 00:38:44

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Несколько хостов потребуют дублировать пользователя. Еще можно использовать процент (например, '192.168.3.%'), но такое использование очень ограничено (и не уверен, что безопасно - может пройти что-то типа 192.168.3.cracker.ru)

Неактивен

 

#11 22.07.2011 10:03:03

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

Несколько хостов потребуют дублировать пользователя.

Довольно странное ограничение sad
Да и phpMyAdmin вроде позволяет использовать одного пользователя.

и не уверен, что безопасно - может пройти что-то типа 192.168.3.cracker.ru

Такие имена запрещены (если конечно нет бага как с пустым именем хоста).

Неактивен

 

#12 22.07.2011 10:26:58

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

phpMyAdmin не показатель.

Можете ли сделать юз-кейс для повтора баги? То есть набор шагов, который приводит к созданию такого юзера, подключаемого с любого хоста?

Неактивен

 

#13 22.07.2011 11:55:42

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

Можете ли сделать юз-кейс для повтора баги? То есть набор шагов, который приводит к созданию такого юзера, подключаемого с любого хоста?

Легко smile

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 и пускать удаленно перестает. Локально соединяется без проблем.

Неактивен

 

#14 22.07.2011 12:31:10

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Не получается повторить. ERROR 2003 (HY000): Can't connect to MySQL server on 'myserver' (111).

Версия MySQL 5.0.45. Какая у вас версия?

Неактивен

 

#15 22.07.2011 14:03:24

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

MySQL 5.1.54 (FreeBSD)

Неактивен

 

#16 22.07.2011 14:12:07

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Пишите на bugs.mysql.com, так как по идее не должен пускать при пустом хосте.

Неактивен

 

#17 22.07.2011 14:32:55

icb
Участник
Зарегистрирован: 21.07.2011
Сообщений: 9

Re: Использование таблицы host для пользователя

А на 5.0.45 работает указание списка IP в таблице host для пользователя (а не для БД)?

Неактивен

 

#18 22.07.2011 15:37:57

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Использование таблицы host для пользователя

Судя по документации все так же, как в 5.1 http://dev.mysql.com/doc/refman/5.0/en/ … cture.html но не проверял.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson