最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL連接控制插件介紹

 更新時(shí)間:2021年09月23日 15:47:26   作者:MySQL技術(shù)  
當(dāng)連接數(shù)據(jù)庫(kù)失敗次數(shù)過(guò)多時(shí),MySQL 是否會(huì)限制登錄呢?數(shù)據(jù)庫(kù)服務(wù)端應(yīng)該怎么應(yīng)對(duì)暴力破解呢?本篇文章介紹下 MySQL 中的連接控制插件,一起來(lái)學(xué)習(xí)下此插件的作用,需要的朋友可以參考下面文章內(nèi)容

1.連接控制(connection_control)插件介紹

MySQL 服務(wù)端包含一個(gè)插件庫(kù),可以自定義安裝各類(lèi)插件。connection_control 插件也是其中一種,主要用來(lái)控制客戶(hù)端在登錄操作連續(xù)失敗一定次數(shù)后的響應(yīng)的延遲。該插件可有效的防止客戶(hù)端暴力登錄的風(fēng)險(xiǎn)。該插件包含以下兩個(gè)組件:

  • CONNECTION_CONTROL:用來(lái)控制登錄失敗的次數(shù)及延遲響應(yīng)時(shí)間。
  • CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS:將登錄失敗的操作記錄至 information_schema系統(tǒng)庫(kù)中。

連接控制插件文件的基本名稱(chēng)為 connection_control 。每個(gè)平臺(tái)的文件名后綴有所不同(對(duì)于 Unix 和類(lèi) Unix 系統(tǒng)為 .so ,對(duì)于 Windows .dll )。下面以 Linux 系統(tǒng)為例來(lái)安裝下 connection_control 插件,Windows 系統(tǒng)只需要將 .so 改成 .dll 即可。

1.1 動(dòng)態(tài)安裝 connection_control 插件

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)

1.2  驗(yàn)證插件狀態(tài)

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        |
+------------------------------------------+---------------+

1.3 安裝完成后 可以看到相關(guān)系統(tǒng)變量

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       |
+-------------------------------------------------+------------+


可以看出,插件安裝還是很簡(jiǎn)單的,不過(guò)這個(gè)插件具體有什么作用呢?我們先來(lái)解釋下相關(guān)系統(tǒng)變量:

  • connection_control_failed_connections_threshold:允許帳戶(hù)進(jìn)行的連續(xù)失敗嘗試的次數(shù)。默認(rèn)為 3 ,表示當(dāng)連接失敗 3 次后啟用連接控制,0 表示不開(kāi)啟。
  • connection_control_max_connection_delay:超出閾值的連接失敗的最大延遲(以毫秒為單位),默認(rèn) 2147483647 毫秒,約 25 天。
  • connection_control_min_connection_delay:超過(guò)閾值的連接失敗的最小延遲(以毫秒為單位),默認(rèn) 1000 毫秒,即 1 秒。

至此,你可能明白了 connection_control 插件的作用,那就是當(dāng)客戶(hù)端連接數(shù)據(jù)庫(kù)連續(xù)失敗到達(dá)一定次數(shù)后,服務(wù)端會(huì)進(jìn)行一段時(shí)間的響應(yīng)延遲,連續(xù)失敗嘗試的次數(shù)越多,響應(yīng)延遲時(shí)間越長(zhǎng)。

2.連接控制實(shí)驗(yàn)

我們來(lái)具體做下實(shí)驗(yàn),為了實(shí)驗(yàn)效果,這里將失敗次數(shù)閾值設(shè)為 10 ,延遲最小時(shí)間設(shè)為 1 分鐘,即當(dāng)連續(xù)連接失敗十次后,延遲響應(yīng)時(shí)間最低為 1 分鐘,下面我們故意輸錯(cuò)密碼來(lái)試試看:

2.1 初始狀態(tài)

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)

2.2  故意輸錯(cuò)密碼

[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)

2.3  查看失敗記錄

mysql> SELECT * FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
+----------------+-----------------+
| USERHOST       | FAILED_ATTEMPTS |
+----------------+-----------------+
| 'testuser'@'%' |               1 |
+----------------+-----------------+
1 row in set (0.00 sec)

# 當(dāng)連續(xù)失敗次數(shù)超過(guò)閾值后 再次進(jìn)行連接會(huì)產(chǎn)生延遲 即延遲一定時(shí)間后才會(huì)返回密碼是否正確
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             |
+---------+----------+--------------------+--------------------+---------+-------+--------------------------------------+------------------+

正常情況下,輸錯(cuò)密碼是即刻返回錯(cuò)誤的,當(dāng)連續(xù)失敗次數(shù)達(dá)到閾值后,再次進(jìn)行連接嘗試,則會(huì)延遲響應(yīng),具體表現(xiàn)就是一直卡著,到延遲結(jié)束后才返回錯(cuò)誤。information_schema 系統(tǒng)庫(kù)中的表會(huì)記錄登錄失敗的用戶(hù)名及失敗次數(shù),當(dāng)延遲發(fā)生時(shí),從 processlist 中也可以查到正在延遲的連接。若輸入密碼正確,則會(huì)取消延遲、重新計(jì)數(shù)。

于是乎,你應(yīng)該理解了為什么此插件能防止客戶(hù)端暴力破解,假設(shè)暴力破解每分鐘嘗試 120 次,現(xiàn)在啟用該插件后,連續(xù)失敗一定次數(shù)后就會(huì)響應(yīng)延遲,并且隨著失敗次數(shù)的增加延遲時(shí)間也會(huì)增加,原來(lái)能立即開(kāi)始下次破解,現(xiàn)在只能到延遲時(shí)間后才能發(fā)起下次嘗試,所以能極大降低被暴力破解的風(fēng)險(xiǎn)。

不過(guò)啟用連接控制插件后要注意是否存在延遲的連接,因?yàn)檎谘舆t的連接也是占用連接數(shù)的,可能會(huì)引起連接積壓導(dǎo)致連接數(shù)不夠用。所以當(dāng)出現(xiàn)延遲的連接時(shí),應(yīng)盡快排查到底是那里在連接,確保密碼輸入正確。

若要啟用此插件,注意要配置合適的閾值及延遲時(shí)間,并記得將這些參數(shù)寫(xiě)入配置文件。一般等保評(píng)測(cè)可能會(huì)有這項(xiàng)要求,這個(gè)時(shí)候連接控制插件會(huì)用得上。

到此這篇關(guān)于MySQL連接控制插件介紹的文章就介紹到這了,更多相關(guān)MySQL連接控制插件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL分頁(yè)Limit的優(yōu)化過(guò)程實(shí)戰(zhàn)

    MySQL分頁(yè)Limit的優(yōu)化過(guò)程實(shí)戰(zhàn)

    在mysql中進(jìn)行分頁(yè)查詢(xún)時(shí),一般會(huì)使用limit查詢(xún),下面這篇文章主要給大家介紹了關(guān)于MySQL分頁(yè)Limit優(yōu)化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • mysql如何匹配JSON中的某個(gè)字段

    mysql如何匹配JSON中的某個(gè)字段

    在MySQL數(shù)據(jù)庫(kù)中,可以通過(guò)JSON_EXTRACT函數(shù)或->>運(yùn)算符查詢(xún)JSON類(lèi)型字段內(nèi)特定鍵的值,例如,使用JSON_EXTRACT(data, '$.name')或data->>'$.name'從data字段中提取name鍵的值,并用于比較得到name為"張三"的記錄
    2024-11-11
  • 淺談MySQL模糊查詢(xún)中通配符的轉(zhuǎn)義

    淺談MySQL模糊查詢(xún)中通配符的轉(zhuǎn)義

    下面小編就為大家?guī)?lái)一篇淺談MySQL模糊查詢(xún)中通配符的轉(zhuǎn)義。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • MySQL中EXPLAIN命令詳解

    MySQL中EXPLAIN命令詳解

    在這里我們將介紹的是MySQL中EXPLAIN解釋命令,希望對(duì)大家有所幫助
    2014-08-08
  • MySQL count(*/column)查詢(xún)優(yōu)化的實(shí)現(xiàn)

    MySQL count(*/column)查詢(xún)優(yōu)化的實(shí)現(xiàn)

    count()是SQL中一個(gè)常用的聚合函數(shù),其被用來(lái)統(tǒng)計(jì)記錄的總數(shù),本文主要介紹了MySQL count(*/column)查詢(xún)優(yōu)化的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-09-09
  • MySQL建表和增添改查操作代碼

    MySQL建表和增添改查操作代碼

    這篇文章主要介紹了MySQL建表和增添改查操作代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)的超詳細(xì)教程

    MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)的超詳細(xì)教程

    MySQL誤刪數(shù)據(jù)庫(kù),造成了數(shù)據(jù)的丟失,這是非常尷尬的,但是有許多方案可以用來(lái)嘗試恢復(fù)丟失的數(shù)據(jù)庫(kù),這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)的超詳細(xì)教程,需要的朋友可以參考下
    2024-03-03
  • MySQL8.0?Command?Line?Client輸入密碼后出現(xiàn)閃退現(xiàn)象的原因以及解決方法總結(jié)

    MySQL8.0?Command?Line?Client輸入密碼后出現(xiàn)閃退現(xiàn)象的原因以及解決方法總結(jié)

    我們?cè)诎惭bMYSQL數(shù)據(jù)庫(kù)時(shí),經(jīng)常會(huì)出現(xiàn)一些問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于MySQL8.0?Command?Line?Client輸入密碼后出現(xiàn)閃退現(xiàn)象的原因以及解決方法的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • MySQL——修改root密碼的4種方法(以windows為例)

    MySQL——修改root密碼的4種方法(以windows為例)

    本文以windows為例為大家詳細(xì)介紹下MySQL修改root密碼的4種方法,大家可以可以根據(jù)的自己的情況自由選擇,希望對(duì)大家有所幫助
    2013-07-07
  • MySQL中NULL和空值的區(qū)別及說(shuō)明

    MySQL中NULL和空值的區(qū)別及說(shuō)明

    這篇文章主要介紹了MySQL中NULL和空值的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論

宁强县| 昌江| 石景山区| 板桥市| 肇州县| 张家界市| 新丰县| 金坛市| 吉木乃县| 墨竹工卡县| 长岛县| 武宁县| 安义县| 谢通门县| 桐乡市| 于都县| 呼伦贝尔市| 慈溪市| 凤冈县| 兰考县| 太白县| 靖边县| 图们市| 略阳县| 常山县| 驻马店市| 新民市| 安远县| 城口县| 灵石县| 东安县| 黔江区| 栾川县| 沽源县| 富阳市| 陆丰市| 白玉县| 门源| 河东区| 华亭县| 深州市|