- Número de consultas que un usuario pueda hacer cada hora.
- Número de updates que un usuario puede hacer cada hora.
- Número de veces que un usuario puede acceder al servidor a la hora.
- Número de conexiones simultaneas permitidas para cada usuario (como max_user_connections pero a nivel individual en lugar de global).
Estos límites tendrán un contador para cada acceso del usuario,excepto cuando su consulta sea servida a través de la cache. Este tipo de contextos se establecen en la tabla mysql.user y los podemos aplicar mediante GRANT. En el siguiente ejemplo estableceríamos todos estos límites para el usuario prueba cuando sus conexiones se realizan desde localhost y contra la base de datos test:
mysql> CREATE USER 'prueba'@'localhost' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL ON test.* TO 'prueba'@'localhost' -> WITH MAX_QUERIES_PER_HOUR 100 -> MAX_UPDATES_PER_HOUR 30 -> MAX_CONNECTIONS_PER_HOUR 200 -> MAX_USER_CONNECTIONS 10;
Para realizar modificaciones en estos límites a posteriori, utilizaremos a nivel global GRANT USAGE:
mysql> GRANT USAGE ON *.* TO 'prueba'@'localhost' -> WITH MAX_QUERIES_PER_HOUR 50;
Para eliminar cualquier límite establecido ponemos el valor a 0:
mysql> GRANT USAGE ON *.* TO 'prueba'@'localhost' -> WITH MAX_QUERIES_PER_HOUR 0;
Para poner a 0 los contadores de limites a nivel general podemos ejecutar el comando:
mysql> FLUSH USER_RESOURCES
También recargando las tablas de privilegios:
mysql> FLUSH PRIVILEGES