Introduction au module de contrôle de Connexion MySQL

Technologie MySQL 2021-09-15 07:06:51
introduction au module contr le


Préface:

Lorsque la connexion à la base de données a échoué trop de fois,MySQL La connexion sera - t - elle limitée?Comment le serveur de base de données devrait - il faire face au piratage violent?Cet article est présenté ci - dessous. MySQL Connectez le module de contrôle dans,Apprenez le rôle de ce plug - in ensemble.

1.Contrôle de la connexion(connection_control)Introduction au plug - in

MySQL Le serveur contient une bibliothèque de plug - ins,Différents types de plug - ins peuvent être installés sur mesure.connection_control Le plug - in en fait partie,Utilisé principalement pour contrôler le délai de réponse du client après un certain nombre de défaillances consécutives de l'opération de connexion.Le plug - in peut efficacement prévenir le risque de connexion violente du client.Le plug - in contient les deux composants suivants:

  • CONNECTION_CONTROL:Utilisé pour contrôler le nombre d'échecs de connexion et le délai de réponse.
  • CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS:Enregistrer les actions qui ont échoué à la connexion à information_schemaDans la Bibliothèque système.

Le nom de base du fichier plug - in de contrôle de connexion est connection_control .Les suffixes de noms de fichiers varient d'une plate - forme à l'autre(Pour Unix Et les classes Unix Le système est .so ,Pour Windows Pour .dll ).En bas Linux Exemple de système pour installer connection_control Plug - in,Windows Le système doit simplement .so Modifier comme suit: .dll C'est tout..

# Installation dynamique connection_control Plug - in
mysql> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
Query OK, 0 rows affected (0.04 sec)
mysql> INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
Query OK, 0 rows affected (0.01 sec)
# Vérifier l'état du plug - in
mysql> SELECT
-> PLUGIN_NAME,PLUGIN_STATUS
-> FROM
-> INFORMATION_SCHEMA.PLUGINS
-> WHERE
-> PLUGIN_NAME LIKE 'connection%';
+------------------------------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+------------------------------------------+---------------+
| CONNECTION_CONTROL | ACTIVE |
| CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS | ACTIVE |
+------------------------------------------+---------------+
# Une fois l'installation terminée Vous pouvez voir les variables pertinentes du système
mysql> show variables like 'connection_control%';
+-------------------------------------------------+------------+
| Variable_name | Value |
+-------------------------------------------------+------------+
| connection_control_failed_connections_threshold | 3 |
| connection_control_max_connection_delay | 2147483647 |
| connection_control_min_connection_delay | 1000 |
+-------------------------------------------------+------------+
Copier le Code

Comme vous pouvez le voir,,L'installation du plug - in est encore simple,Mais qu'est - ce que ce plug - in fait exactement??Expliquons d'abord les variables pertinentes du système.:

  • connection_control_failed_connections_threshold:Nombre de tentatives consécutives d'échec autorisées pour le compte.Par défaut 3 ,Indique que lorsque la connexion échoue 3 Activer le contrôle de connexion après,0 Indique qu'il n'est pas ouvert.
  • connection_control_max_connection_delay:Délai maximal de défaillance de la connexion au - delà du seuil(En millisecondes),Par défaut 2147483647 MS,Environ. 25 Oh, mon Dieu..
  • connection_control_min_connection_delay:Délai minimal de défaillance de la connexion au - delà du seuil(En millisecondes),Par défaut 1000 MS,C'est - à - dire: 1 Secondes.

Jusqu'ici.,Vous avez peut - être compris. connection_control Le rôle du plugin,C'est - à - dire qu'après un certain nombre d'échecs consécutifs de connexion du client à la base de données,Le serveur a un délai de réponse,Plus il y a d'échecs consécutifs,Plus le délai de réponse est long.

2.Expérience de contrôle de connexion

Faisons une expérience concrète.,Pour des résultats expérimentaux,Le seuil de défaillance est fixé ici à 10 ,Délai minimal fixé à 1 Minutes,C'est - à - dire après dix défaillances consécutives de la connexion,Le délai de réponse le plus court est 1 Minutes,Maintenant, on va essayer d'entrer le mauvais mot de passe.:

# État initial
mysql> show variables like 'connection_control%';
+-------------------------------------------------+------------+
| Variable_name | Value |
+-------------------------------------------------+------------+
| connection_control_failed_connections_threshold | 10 |
| connection_control_max_connection_delay | 2147483647 |
| connection_control_min_connection_delay | 60000 |
+-------------------------------------------------+------------+
3 rows in set (0.01 sec)
mysql> SELECT * FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
Empty set (0.00 sec)
# Erreur intentionnelle de mot de passe
[root@localhost ~]# mysql -utestuser -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'testuser'@'localhost' (using password: YES)
# Affichage des enregistrements d'échec
mysql> SELECT * FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
+----------------+-----------------+
| USERHOST | FAILED_ATTEMPTS |
+----------------+-----------------+
| 'testuser'@'%' | 1 |
+----------------+-----------------+
1 row in set (0.00 sec)
# Lorsque le nombre de défaillances consécutives dépasse le seuil La reconnexion entraîne un retard C'est - à - dire que le mot de passe ne sera retourné qu'après un certain délai.
mysql> SELECT * FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
+----------------+-----------------+
| USERHOST | FAILED_ATTEMPTS |
+----------------+-----------------+
| 'testuser'@'%' | 10 |
+----------------+-----------------+
mysql> show processlist;
+---------+----------+--------------------+--------------------+---------+-------+--------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+----------+--------------------+--------------------+---------+-------+--------------------------------------+------------------+
| 1817003 | root | localhost | NULL | Query | 0 | starting | show processlist |
| 1817091 | testuser | localhost | NULL | Connect | 16 | Waiting in connection_control plugin | NULL |
+---------+----------+--------------------+--------------------+---------+-------+--------------------------------------+------------------+
Copier le Code

Dans des conditions normales,L'entrée d'un mauvais mot de passe renvoie immédiatement une erreur,Lorsque le nombre de défaillances consécutives atteint le seuil,Essayez de vous connecter à nouveau,La réponse sera retardée,C'est comme s'ils étaient coincés.,L'erreur n'est retournée qu'après la fin du délai.information_schema Le tableau de la Bibliothèque système enregistre le nom d'utilisateur et le nombre d'échecs de connexion échoués,Lorsque le délai se produit,De processlist Les connexions retardées peuvent également être trouvées dans.Si le mot de passe est entré correctement,Le délai est annulé、Recompter.

Alors,Vous devriez comprendre pourquoi ce plug - in empêche les attaques violentes des clients,Supposons que le crack violent essaie chaque minute 120 Une fois,Maintenant que le plug - in est activé,Un certain nombre de défaillances consécutives retardent la réponse,Et le délai augmente avec le nombre de défaillances,Ça a commencé immédiatement.,La prochaine tentative ne peut être lancée qu'après un délai,Cela réduit considérablement le risque de craquage violent.

Cependant, lorsque vous activez le plug - in de contrôle de connexion, veillez à ce qu'il n'y ait pas de connexion retardée.,Parce que les connexions retardées occupent également le nombre de connexions,Peut entraîner un arriéré de connexions, ce qui peut entraîner un nombre insuffisant de connexions.Donc quand il y a une connexion retardée,Vérifiez la connexion dès que possible.,Assurez - vous que le mot de passe est entré correctement.

Pour activer ce plug - in,Attention à la configuration des seuils et des délais appropriés,N'oubliez pas d'écrire ces paramètres dans le fichier de configuration.Cette exigence peut être exigée par l'évaluation générale de la garantie,Connectez le module de contrôle à ce moment - là..

版权声明
本文为[Technologie MySQL]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210914164725488M.html

  1. Opérateurs arithmétiques et opérateurs de comparaison pour JavaScript, Introduction classique au développement web
  2. MySQL + +: slow query log analysis (I)
  3. Explorer le cadre open source Android - 1. Okhttp Source Analysis
  4. 分布式宝典:限流 缓存 通讯,Java开发中常见的一些问题面试专题,
  5. 分享面试经历的网站,腾讯大牛教你自己写Java框架!
  6. Expliquer les six principes de base du modèle de conception par des exemples réels
  7. Site Web pour partager vos expériences d'entrevue, Tencent Bull vous apprend à écrire votre propre cadre Java!
  8. Dictionnaire distribué: communication de cache limitée par le courant, sujets d'entrevue pour certaines questions courantes dans le développement Java,
  9. Another uncle circle man is angry! The high-quality acting skills make people admire and achieve the highlight of the ending of spring in Jade House
  10. 10. MySQL database import, export and authorization
  11. 9. MySQL data query
  12. 8. MySQL data operation DML
  13. 7. MySQL database table engine and character set
  14. 分享面試經曆的網站,騰訊大牛教你自己寫Java框架!
  15. Les points de connaissance de Java Real - time Video Download, Byte Jumping Java R & D post ont été divulgués à l'intérieur.
  16. Introduction au JavaScript chapitre 15 (objets, clairvoyance)
  17. 前方高能,Java程序员最大的悲哀是什么?
  18. 别再说你不会JVM性能监控和调优了,2021华为Java高级面试题及答案,
  19. Tencent private cloud MySQL solution tdsql
  20. 前方高能,Java程序員最大的悲哀是什麼?
  21. Quelle est la plus grande tristesse des programmeurs Java à l'avenir?
  22. 15 useful cron work examples commonly used by Senior Linux system administrators
  23. Ne dites pas que vous ne pouvez pas surveiller et ajuster les performances JVM, 2021 Huawei Java Advanced interview Questions and Answers,
  24. 別再說你不會JVM性能監控和調優了,2021華為Java高級面試題及答案,
  25. 十多家大厂Java面试真题锦集干货整理,Java开发者该学习哪些东西提高竞争力?
  26. 十分钟带你回顾Spring常问的知识点,35岁老年程序员的绝地翻身之路,
  27. 区区一个SpringBoot问题就被干趴下了,看完这一篇就够了!
  28. K8s gestion des ressources (opérations de base)
  29. Java and cloud native dating
  30. 區區一個SpringBoot問題就被幹趴下了,看完這一篇就够了!
  31. Un problème de démarrage de printemps dans le district a été séché, et c'est assez!
  32. Dix minutes pour vous faire passer en revue les points de connaissance que Spring demande souvent, le chemin du retour Jedi d'un programmeur âgé de 35 ans,
  33. Plus d'une douzaine de grandes usines Java interview vrai sujet brocade collection de marchandises sèches, les développeurs Java devraient apprendre ce qui améliore la compétitivité?
  34. 十分鐘帶你回顧Spring常問的知識點,35歲老年程序員的絕地翻身之路,
  35. Guide de route d'apprentissage Java, redis a plusieurs types de données?
  36. 华为Java高级工程师面试题,字节跳动上千道精选面试题还不刷起来!
  37. 华为Java面试题目,腾讯Java开发面试记录,
  38. Propriétés et méthodes des objets Array en javascript!,Pseudo - classes et pseudo - éléments pour CSS
  39. Design pattern -- agent pattern
  40. 華為Java面試題目,騰訊Java開發面試記錄,
  41. Huawei Java interview title, Tencent Java Development interview record,
  42. Huawei Java Senior Engineer interview question, Byte Jumping thousand Selected Interview Question is still not Brushed!
  43. 双非本科字节跳动Java面试题分享,一篇文章教你搞定计算机网络面试,
  44. 又到一年金三银四,2021最新Java笔试题及答案,
  45. Huawei Finance and Economics 2021 Spring Recruitment interview, what is distributed Lock?Pourquoi utiliser des serrures distribuées?
  46. Un an plus tard, Golden, Silver, Silver, and Silver, 2021, the latest Java written Examination Questions and Answers,
  47. Partage de questions d'entrevue Java à double saut d'octets non - premier cycle, un article vous apprend à gérer l'entrevue réseau informatique,
  48. Computer graduation project java online voting system based on SSM
  49. K8s gestion des ressources (opérations de base)
  50. 又到一年金三銀四,2021最新Java筆試題及答案,
  51. Collection de code de base JavaScript (1)
  52. Vérification des permissions d'interface pour le démarrage du printemps à l'aide d'annotations personnalisées AOP +.
  53. Vérification des permissions d'interface pour le démarrage du printemps à l'aide d'annotations personnalisées AOP +.
  54. Cloud Security Daily 210914: Red Hat Jboss Middleware Platform found important Security Vulnerability and needs to be upgraded as soon as possible
  55. 吐血整理,腾讯团队实力打造spring入门教程,
  56. 史上最全的微服务专业术语面试50问,字节跳动Java岗经典面试真题,
  57. Absolument!C'est l'analyse la plus détaillée du code source de hashtap que j'ai jamais vu!
  58. Computer graduation project Java logistics order management system of logistics company based on SSM
  59. Talk about Kafka: source code analysis of producer
  60. [springboot2 starts from 0] development tips - Lombok, devtools, spring initailizr