Supprimer un compte utilisateur de MySQL
<<<
Limiter les ressources utilisateurs Configurer les mots de passe
>>>

5.5 Gestion des comptes utilisateurs de MySQL
5 Administration du serveur
 Manuel de Référence MySQL 4.1 : Version Française

Nom d'utilisateurs MySQL et mots de passe
Ajouter de nouveaux utilisateurs à MySQL
Supprimer un compte utilisateur de MySQL
->Limiter les ressources utilisateurs
Configurer les mots de passe
Garder vos mots de passe en lieu sûr
Utilisation des connexions sécurisées

5.5.4 Limiter les ressources utilisateurs

Jusqu'à la version 4.0.2, la seule méthode possible pour limiter l'utilisation des ressources serveurs MySQL était de configurer la variable de démarrage max_user_connections avec une valeur non nulle. De même, le nombre de connexions simultanées pouvaient être limitées pour un compte, mais pas les opérations réalisables, une fois l'utilisateur connecté. Ces deux types de contrôles ont importants pour les administrateurs systèmes et les fournisseurs de services.

Depuis MySQL 4.0.2, il est possible de limiter certaines ressources accessibles à un utilisateur possible :

  • Nombre de requête par heure : Toutes les commandes qu'un utilisateur peut exécuter.
  • Nombre de modifications par heure : Toute commande qui implique la modification d'une table ou d'une base.
  • Nombre de connexions réalisées par heure : Le nombre de nouvelles connexions par heure.
Toute commande que le client émet compte pour la limiter de requêtes. Seules les commandes qui modifient les tables ou bases comptant pour la limite de modifications.

Pour utiliser cette fonctionnalité, la table user de la base mysql doit contenir les colonnes nécessaires pour stocker les limites. Les limites doivent être stockées dans les colonnes max_questions , max_updates et max_connections . Si votre table user ne dispose pas de ces colonnes, elle doit être mise à jour. Voyez Mise à jour des tables de droits .

Par défaut, les utilisateurs ne sont pas limités dans l'utilisation des ressources ci-dessus, à moins que des limites ne leur soient imposées. Ces limites peuvent être configurées uniquement via la commande GRANT (*.*) , avec cette syntaxe :

Pour spécifier des limites de ressources avec la commande GRANT , utilisez la clause WITH pour chaque ressource que vous voulez limiter. Par exemple, pour créer un nouveau compte avec un accès à la base customer , mais sans abuser, utilisez ceci :


mysql> GRANT ALL ON customer.* TO 'francis'@'localhost'
    ->     IDENTIFIED BY 'frank'
    ->     WITH MAX_QUERIES_PER_HOUR 20
    ->          MAX_UPDATES_PER_HOUR 10
    ->          MAX_CONNECTIONS_PER_HOUR 5;
Les types de limite n'ont pas besoin d'être tous appelés avec WITH , mais ils peuvent être appelés dans n'importe quel ordre. La valeur de chaque limite doit être un entier représentant le nombre autorisé par heure. Si la commande GRANT n'a pas de clause WITH , les limites valent alors 0, c'est à dire qu'il n'y a pas de limite.

Pour configurer et changer les limites d'un compte existant, utilisez la commande GRANT USAGE au niveau global, avec ON *.* . La commande suivante modifie la limite de requêtes du compte francis à 100 :


mysql> GRANT USAGE ON *.* TO 'francis'@'localhost'
    ->     WITH MAX_QUERIES_PER_HOUR 100;
Cette commande ne touche pas aux droits du compte : elle ne modifie que les valeurs des limites.

Pour supprimer une limite existante, donnez lui la valeur de 0. Par exemple, pour supprimer la limite de connexions de francis , utilisez cette commande :


mysql> GRANT USAGE ON *.* TO 'francis'@'localhost'
    ->     WITH MAX_CONNECTIONS_PER_HOUR 0;
Le compteur d'utilisation des ressources se met en marche dès que la limite n'est pas nulle.

Durant le fonctionnement du serveur, les ressources utilisées sont comptées. Si le compte atteint la limite de connexions dans un intervalle d'une heure, les connexions suivantes sont rejetées, jusqu'à la fin de l'heure. Similairement, si le compte atteint la limite de requête dans un intervalle d'une heure, les requêtes suivantes sont sont rejetées, jusqu'à la fin de l'heure. Dans tous les cas, un message approprié est affiché.

Le compte de ressource est fait par compte, et non pas client. Par exemple, si votre compte a une limite de requêtes de 50, vous ne pouvez pas augmenter votre limite à 100 en vous connectant deux fois. Les requêtes issues des deux connexions seront alors comptées ensemble.

Le compte courant d'utilisation peut être remis à zéro, globalement, ou individuellement :

  • Pour remettre à zéro les compteurs pour tous les comptes, faites un FLUSH USER_RESOURCES . Les comptes sont remis à zéro au moment du re-chargement des tables de droits : par exemple, avec la commande FLUSH PRIVILEGES ou la commande mysqladmin reload .
  • Les comptes individuels peuvent être remis à zéro en donnant de nouvelles limites ou changeant les droits. Pour cela, utilisez GRANT USAGE tel que décrit précédemment, en donnant la même limite que celle qui est configurée.

<< Limiter les ressources utilisateurs >>
Supprimer un compte utilisateur de MySQL Gestion des comptes utilisateurs de MySQL Configurer les mots de passe