Limitando os Recursos dos Usuários


A partir do MariaDB 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 MariaDB 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:

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 MariaDB 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.

Retornar