Search the MySQL manual:
MySQL Manual

Buy this Reference Manual in softcover from Barnes & Noble!

/ / Up / Table of Contents

4.3.6 Ограничение ресурсов пользователя

Начиная с 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'.

User Comments

Posted by Arnaud Pignard on Thursday July 11 2002, @3:19pm [Delete] [Edit]

Will be great if we can limit number of user per base
and not per hour.

Posted by Jason Sydes on Thursday January 9 2003, @3:49pm [Delete] [Edit]

How about something to limit the number of rows per hour.

Rows examined, sent, whatever.

There are many users we have that constantly send themselves an entire table, with their application sometimes limiting the number of rows displayed, other times not.

Posted by Jon Stephens on Friday January 10 2003, @11:02pm [Delete] [Edit]

This feature does not seem to have yet been implemented for Win32. It would be helpful if the additional grant table columns could be described here, since in the Windows version of MySQL, there is no mysql_install_db script (usually unnecessary since the equivalent function is handled by the installer). Either that or update the installer to create the enhanced grant tables.

Posted by Jose Luis Tallon on Sunday March 2 2003, @2:51pm [Delete] [Edit]

Since tables files are created with mysql:mysql user, it would be most useful to somewhat limit table/database sizes, i.e. "grant ... to user@host with 50MB storage"
or something like that

Add your own comment.

Top / / / Up / Table of Contents