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

В MySQL существует возможность ограничить для конкретного аккаунта следующие ресурсы:

  • MAX_QUERIES_PER_HOUR – количество запросов, которое может выполнить данный пользователь в течение часа;
  • MAX_UPDATES_PER_HOUR – количество апдейтов, которое может быть выполнено в течение часа;
  • MAX_CONNECTIONS_PER_HOUR – сколько раз пользователь может коннектиться к серверу в течение часа;
  • MAX_USER_CONNECTIONS – количество одновременно разрешенных коннектов.

Необходимо отметить, что ограничение количества одновременных коннектов под одним аккауном также может быть установлено через глобальную переменную MAX_USER_CONNECTIONS в значение отличное от 0. При этом никак не ограничивается, что именно пользователь будет делать, когда подконнектится.

Для того, чтобы установить эти ограничения используется команда GRANT с ключом WITH и именем того ресурса, который мы хотим ограничить. Значения по умолчанию – 0 (без ограничений).

GRANT ALL ON USERS.* TO ‘joe’@’localhost’
WITH MAX_QUERIES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 10
MAX_CONNECTIONS_PER_HOUR 5 MAX_USER_CONNECTIONS 2;

Например, можно установить лимиты с помощью вышеуказанной команды.
Для того, чтобы “сбросить” установленные ранее ограничения в значение по умолчанию (“без ограничений”), необходимо установить их в 0.

GRANT USAGE ON *.* to ‘jane’@’localhost’
WITH MAX_CONNECTIONS_PER_HOUR 0;

Обратите внимание, что установка MAX_USER_CONNECTIONS в нулевое значение, еще не означает снятие ограничений. В этом случае будет работать системная переменная MAX_USER_CONNECTIONS, если она была установлена.

Оглавление.

Leave a Reply

Your email address will not be published. Required fields are marked *