A partir do MySQL 4.0.2 pode se limitar certos recursos por usuários.
Até então, o único método disponível de limitação de uso
do servidor MySQL era canfigurar a variável de inicialização
max_user_connections
para um valor diferente
de zero. Mas este método é estritamente global e não permite
o gerenciamento de usuários individuais, o que pode ser de
interresse particular do Provedor de Serviços Internet.
Consequentemente, o gerenciamento de três recursos é introduzido no nível de usuário individual:
Número de todas as consultas por hora: Todos os comandos que podiam ser executados por um usuário.
Número de todas as atualizações por hora: Qualquer comando que altera qualquer tabela ou banco de dados.
Númeor de conexões feitas por hora: Novas conexões abertas por hora.
Um usuário no contexto mencionado acima é uma única entrada
na tabela user
, que é identificada
unicamente por suas colunas user
e
host
.
Todos os usuários não são limitados por padrão no uso dos
recursos acima, a menos que os limites sejam garantidos a eles.
Estes limites podem ser concedidos
apenas através do
GRANT (*.*)
global, usando esta sintaxe:
GRANT ... WITH MAX_QUERIES_PER_HOUR N1 MAX_UPDATES_PER_HOUR N2 MAX_CONNECTIONS_PER_HOUR N3;
Pode-se especificar qualquer combinação dos recursos acima.
N1
, N2
e
N3
são inteiros e significam contagem/hora.
Se os usuários alcançam o limite de conexões dentro de uma hora, não será aceita mais nenhuma conexão até o fim desta hora. De forma parecida se o usuário alcança o limite do número de consultas ou atualizações, consultas ou atualizações adicionais serão rejeitadas até que a hora acabe. Em todos os casos, uma mensagem de erro apropriada é enviada.
Os valores atualmente usados por um usuário em particular pode
ser descarregados (zerados) enviando uma instrução
GRANT
com qualquer das cláusulas acima,
incluíndo uma instrução GRANT
com os
valores atuais.
Os valores atuais para todos os usuários para todos os
usuários serão descarregados se os privilégios forem
recarregados (no servidor ou usando mysqladmin
reload
) ou se o comando FLUSH
USER_RESOURCES
é executado.
O resurso está habilitado assim que e concedido a um único
usuário qualquer das cláusulas GRANT
de
limitação.
Como um prerequisito para a habilitação deste recurso, a
tabela user
no banco de dados
mysql
deve conter as colunas adicionais, como
definido no script de criação de tabelas
mysql_install_db
e
mysql_install_db.sh
no subdiretório
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.