Начиная с MySQL версии 4.0.2 можно ограничивать определенные ресурсы, выделяемые пользователям.
До этой версии единственным
возможным методом ограничения
использования ресурсов сервера MySQL
была установка переменной запуска
max_user_connections в значение,
отличное от нуля. Но этот метод
действует только на глобальном
уровне и не позволяет управлять
отдельными пользователями. Он
может представлять определенный
интерес только для провайдеров
услуг Internet.
На уровне отдельного пользователя теперь введено управление следующими тремя ресурсами:
Количество всех запросов в час: все команды, которые может запускать пользователь.
Количество всех обновлений в час: любая команда, которая изменяет таблицу или базу данных.
Количество соединений, сделанных за час: новые соединения, открытые за час.
Пользователь в упомянутом выше
контексте представляет собой
отдельную запись в таблице user,
которая уникальным образом
идентифицируется своими столбцами
user и host.
По умолчанию все пользователи не
ограничены в использовании
указанных выше ресурсов только в
случае, только если эти
ограничения не наложены на них.
Данные ограничения могут быть
наложены только
при помощи глобальной команды
GRANT (*.*) с использованием
следующего синтаксиса:
GRANT ... WITH MAX_QUERIES_PER_HOUR N1
MAX_UPDATES_PER_HOUR N2
MAX_CONNECTIONS_PER_HOUR N3;
Можно указать любое сочетание приведенных выше ресурсов. N1, N2 и N3 являются целыми числами, представляющими собой значения количеств запросов/обновлений/соединений в час.
Если пользователь в течение часа достигает предела любого из вышеуказанных значений, его соединение будет прервано с выдачей соответствующего сообщения об ошибке.
Текущие значения для
определенного пользователя могут
быть сброшены (установлены в нуль),
если воспользоваться оператором
GRANT с любым из
приведенных выше пунктов, включая
оператор GRANT с текущими
значениями.
Кроме того, текущие значения для
всех пользователей сбрасываются,
если производится перезагрузка
привилегий (на сервере или при
использовании команды mysqladmin
reload) или если выполняется
команда FLUSH USER_RESOURCES.
Эта функция включается сразу после
того, как на пользователя будут
наложены ограничения при помощи
команды GRANT.
Необходимым условием для
включения данной функции является
наличие в таблице user
базы данных mysql
дополнительного столбца, как это
определено в скриптах создания
таблиц mysql_install_db и
mysql_install_db.sh в подкаталоге
scripts.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
