Справочное руководство по MySQL версии 4.1.1-alpha



         

Глава 4.2.9 Управление доступом, этап 1: верификация подсоединения


При попытке соединения с сервером MySQL он либо устанавливает соединение, либо отказывает в нем - на основе данных о вашей личности и того, можете ли вы подтвердить их соответствующим паролем. Если нет, сервер полностью отказывает вам в доступе. В противном случае сервер устанавливает соединение, затем переходит ко второму этапу и ожидает запросов.

Личность задается двумя порциями информации:

  • хостом, с которого вы подсоединяетесь

  • вашим именем пользователя MySQL

    Проверка личности осуществляется с помощью трех полей контекста таблицы user (Host, User и Password). Сервер устанавливает соединение только в том случае, если находит в таблице user запись, в которой имя хоста и имя пользователя совпадают с введенными вами, и вы указываете правильный пароль.

    Значения в полях контекста таблицы user могут задаваться следующим образом:

    • В поле Host может указываться имя хоста, либо его IP-адрес, либо 'localhost' для обозначения локального хоста.

    • В поле Host разрешается использовать шаблонные символы `%' и `_'.

    • Значение '%' в поле Host означает любое имя хоста.

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

    • Начиная с версии MySQL 3.23 для значений в поле в поле Host, определенных в виде IP-адресов, можно задавать сетевую маску, указывающую, сколько разрядов адреса будет использоваться для указания номера сети. Например:

      mysql> GRANT ALL PRIVILEGES ON db.* -> TO david'192.58.197.0/255.255.255.0';

      В этом случае все IP-адреса, для которых выполняется следующее условие:

      user_ip & netmask = host_ip.

      являются разрешенными для подсоединения. В предыдущем примере все IP-адреса в диапазоне от 192.58.197.0 до 192.58.197.255 являются разрешенными для подсоединения к серверу MySQL.

    • В поле User запрещено использовать шаблонные символы, но пустое значение разрешено, и оно соответствует любому имени. Если запись в таблице user, соответствующая входящему подсоединению, содержит пустое имя пользователя, данный пользователь считается анонимным пользователем (пользователем без имени), а заданное клиентом имя пользователя игнорируется. Это означает, что при всех последующих проверках доступа, осуществляемых на протяжении данного соединения (т.е. на этапе 2), будет использоваться пустое имя пользователя.




      Содержание  Назад  Вперед