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



         

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


После установления соединения сервер приступает к выполнению второго этапа. Для каждого поступающего запроса сервер проверяет, имеется ли у вас достаточно привилегий для его выполнения, основываясь при этом на типе операции, которую вы хотите выполнить. Теперь в действие вступают поля привилегий в таблицах привилегий. Информация о привилегиях может находиться в любой из таблиц привилегий - user, db, host, tables_priv или columns_priv. Обработка таблиц привилегий осуществляется с помощью команд GRANT и REVOKE. Обратитесь к разделу See section 4.3.1 Синтаксис команд GRANT и REVOKE. Интерес может представлять раздел See section 4.2.6 Как работает система привилегий, в котором перечислены поля, имеющиеся в каждой из таблиц привилегий.

Таблица user предоставляет привилегии глобального характера, и их применение не зависит от того, в какой базе вы работаете в данный момент. Например, если таблица user предоставляет пользователю привилегию DELETE, он может удалять строки из любой базы данных на серверном хосте! Иными словами, привилегии в таблице user - это привилегии суперпользователя. Поэтому целесообразно предоставлять привилегии в таблице user только суперпользователям, таким как администраторы сервера или администраторы баз данных. Что касается других пользователей, для их привилегий в таблице user следует установить значение 'N' и предоставлять им привилегии только на уровне баз данных, используя для этого таблицы db и host.

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

  • Шаблонные символы `%' и `_' могут использоваться в полях Host

    и Db любой таблицы. Если вы хотите использовать символ `_' как часть имени базы данных, укажите его как `\_' в операторе GRANT.

  • Значение '%' в колонке Host таблицы db означает ``любой хост''. Пустое значение в поле Host таблицы db означает ``за дополнительной информацией следует обратиться к таблице host''.

  • Значение '%' или пустое значение в поле Host таблицы host означает ``любой хост''.




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