Опубликован: 16.04.2007 | Доступ: свободный | Студентов: 5325 / 859 | Оценка: 4.18 / 4.08 | Длительность: 16:03:00
Лекция 11:

Безопасность

Содержимое столбцов области доступа

В некоторых столбцах области необходимо вводить буквенные значения, однако в большинстве из них можно использовать также специальные символы.

Host. Значение столбца Host может представлять собой имя компьютера или его IP-адрес. Значение localhost соответствует локальному компьютеру, однако рекомендуется использовать его только в том случае, если данный компьютер действительно имеет имя localhost. Представим ситуацию, когда локальный компьютер имеет имя pit.viper.snake и для одного пользователя имеется две записи в таблице user. Одна запись в столбце Host имеет значение localhost, а вторая — pit-viper.snake.net. Первая запись будет использоваться только при подключении к компьютеру localhost, а вторая — к компьютеру pit-viper.snake.net. Если необходимо, чтобы пользователи имели возможность подключиться с помощью любого из этих способов, следует оставить обе эти записи в таблице user.

Значения столбца Host также можно задать с помощью шаблона. Так, можно использовать распространенные в SQL символы "%" и "_", имеющие такое же значение, как и в строке запроса с оператором like. (REGEX-шаблоны для этих целей неприменимы.) Символы шаблона SQL можно применять при определении как имен, так и IP-адресов. Строке %.wisc.edu, например, соответствуют все компьютеры домена wisc.edu, а строке %.edu — компьютеры всех подключенных к сети организаций системы образования. Аналогичным образом, строка 192.168.% описывает все компьютеры подсети класса В 192.168, а строка 192.168.3.% — все компьютеры подсети класса С 192.168.3.

Значение "%" определяет все компьютеры и дает возможность пользователю подключиться из любой точки. Пустое значение столбца Host аналогично значению "!". (Исключение: в таблице db пустое значение столбца Host указывает на необходимость проверки таблицы host для получения более детальной информации)

В версиях MySQL серии 3.23 можно также определить числа IP-адресов с помощью маски сети, отражающей разрядность сетевого номера. Строка 192.168.128.0/17, например, определяет 17 разрядный сетевой номер. Ей соответствует любой компьютер, первые 17 разрядов IP-адреса которого аналогичны разрядам адреса 192 .168 .128.

  • User. Имена пользователей могут задаваться буквенными или пустыми значениями. В последнем случае сможет подключиться любой пользователь. Значение "%" и пустое значение в столбце User — это не одно и то же. Оно соответствует пользователю с именем "%". Надо признать, такое имя встречается довольно редко.

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

  • Password. Значения этого столбца могут быть либо пустыми, либо буквенными. Специальные символы в них использовать нельзя. Пустое значение не является аналогией "любого пароля". Когда в таблице определено пустое значение столбца Password, пользователь не должен определять пароль вовсе.

    Значения паролей хранятся в зашифрованном, а не в обычном текстовом виде. Пользователи не смогут подключиться к серверу, если в столбец Password записываются обычные текстовые значения! Оператор GRANT и команда mysqladmin password автоматически шифруют пароль. Поэтому при непосредственной записи паролей с помощью команд INSERT, replace, update и set password следует зашифровать их значения с помощью команды PASSWORD("new_password").

  • Db. Значения столбца Db в таблицах columns_priv и tables_priv обязательно должны представлять собой текстовые имена баз данных. Использование специальных символов и пустых значений запрещается. В таблицах db и host эти значения можно определить как в виде текстовых значений, так и с помощью SQL-символов "%" и "_". Пустое значение и значение % позволяют получить доступ к любой базе данных.

  • Table_name, Column_name. Значения этих столбцов представляют собой текстовые записи имен таблиц и столбцов. Использование специальных символов и пустых значений запрещается.

    Регистр символов в некоторых столбцах области играет важное значение, а в остальных столбцах значения могут быть записаны как строчными, так и прописными буквами. Регистры символов в таких столбцах воспринимаются сервером по-разному. Это показано в табл. 3. Необходимо заметить, что регистр значений столбца Table_name всегда имеет значение, хотя учет регистра в именах таблиц в запросах зависит от файловой системы, под управлением которой работает сервер (под управлением UNIX выбор регистра важен, а под управлением Windows — нет).

    Таблица 3. Учет регистра в столбцах области таблиц разрешений
    Столбец Учет регистра
    Host нет
    User да
    Password да
    Db да
    Table name да
    Column name нет
Александра Каева
Александра Каева
Дмитрий Черепенин
Дмитрий Черепенин

Какого года данный курс?