欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL實(shí)現(xiàn)身份鑒別的項(xiàng)目實(shí)踐

 更新時(shí)間:2024年11月22日 08:58:00   作者:一葉飛舟  
本文主要介紹了MySQL數(shù)據(jù)庫(kù)身份鑒別的有效性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

MySQL的身份鑒別是數(shù)據(jù)庫(kù)安全的核心命題之一。在每日“擰螺絲”的工作中,我們的開(kāi)發(fā)人員可能會(huì)忽略這個(gè)問(wèn)題。正因如此,博主以這個(gè)契機(jī),向大家做一次專(zhuān)題介紹??催^(guò)此文,相信你能夠“上應(yīng)付得了等保,下對(duì)得起公司”。

在這里插入圖片描述

Q:如何保障MySQL數(shù)據(jù)庫(kù)身份鑒別的有效性

提示:本文示例均已MySQL5.7為例,通過(guò)root用戶(hù)執(zhí)行相關(guān)命令。

如何保障MySQL數(shù)據(jù)庫(kù)身份鑒別,有很多手段進(jìn)行識(shí)別。博主通過(guò)SQL的方式,進(jìn)行逐一介紹。

一、有效性檢查

1. 用戶(hù)唯一

檢查授權(quán)的用戶(hù)是否唯一:

SELECT USER, HOST FROM mysql.user;

2. 啟用密碼驗(yàn)證

檢查PLUGIN是否包含*_password

-- mysql_native_password,身份驗(yàn)證插件
SELECT USER, HOST, PLUGIN FROM mysql.user;

3. 是否存在空口令用戶(hù)

檢查authentication_string是否存在空值:

-- authentication_string,加密后密碼,即執(zhí)行password()后的值
SELECT USER, HOST, PLUGIN, authentication_string FROM mysql.user;

4. 是否啟用口令復(fù)雜度校驗(yàn)

檢查validate_password插件,是否已啟用:

-- 如果為空,證明未啟用該插件
SHOW VARIABLES LIKE 'validate%';

5. 是否設(shè)置口令的有效期

-- 默認(rèn)0,永不過(guò)期
SHOW VARIABLES LIKE '%default_password_lifetime%';

6. 是否限制登錄失敗嘗試次數(shù)

-- 如為空,代表未設(shè)置,可無(wú)限嘗試
SHOW VARIABLES LIKE '%connection-control-failed-connections-threshold%';

7. 是否設(shè)置(超過(guò)嘗試次數(shù))鎖定的最小時(shí)長(zhǎng)

-- 如為空,代表未設(shè)置,永不鎖定
SHOW VARIABLES LIKE '%connection-control-min-connection-delay%';

8. 是否設(shè)置保持登錄的有效期

-- 默認(rèn)0,代表永不退出登錄
SHOW VARIABLES LIKE '%wait_timeout%';

二、應(yīng)對(duì)方案

針對(duì)第一部分的有效性檢查中,涉及不滿(mǎn)足的配置項(xiàng),我們可以通過(guò)以下措施加以彌補(bǔ)。

1. 空口令問(wèn)題

如存在空口令,可通過(guò)root執(zhí)行以下命令:

alter user [USER]@[HOST] identified by '[PASSWORD]';

2. 口令復(fù)雜度

如未啟用口令復(fù)雜度,可能會(huì)遇到暴力 破 解,因此建議設(shè)置相關(guān)項(xiàng)。

2.1 安裝插件

MySQL默認(rèn)預(yù)留了口令復(fù)雜度插件:validate_password。我們只需要通過(guò)root用戶(hù)安裝即可:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

查看是否安裝成功(如看到以下記錄,代表成功):

SHOW VARIABLES LIKE 'validate%';

在這里插入圖片描述

2.2 參數(shù)解釋

為加深各位盆友的理解,博主對(duì)返回的參數(shù)加以說(shuō)明。

2.2.1 validate_password_policy

MySQL的密碼策略包含以下3種:
LOW 或 0代表密碼必須滿(mǎn)足指定長(zhǎng)度。
MEDIUM 或 1(默認(rèn))代表密碼必須至少包含1個(gè)大寫(xiě)字母、1個(gè)小寫(xiě)字母、1個(gè)數(shù)字和1個(gè)特殊字符。
STRONG 或 2在滿(mǎn)足MEDIUM的基礎(chǔ)上,不允許存儲(chǔ)在字典文件(dictionary file)中。

2.2.2 配套參數(shù)

參數(shù)名稱(chēng)用途
validate_password_length定義密碼長(zhǎng)度,默認(rèn)8位,適用于LOW 策略。
validate_password_mixed_case_count定義大、小寫(xiě)字母的個(gè)數(shù),默認(rèn)1,適用于非LOW策略。
validate_password_number_count定義數(shù)字的個(gè)數(shù),默認(rèn)1,適用于非LOW策略。
validate_password_special_char_count定義特殊字符的個(gè)數(shù),默認(rèn)1,適用于非LOW策略。

2.3 調(diào)整參數(shù)

掌握了參數(shù)特征后,我們可以按需調(diào)整相關(guān)參數(shù)的值,以滿(mǎn)足安全需要,執(zhí)行命令如下:

--必須以root身份執(zhí)行,且擁有super權(quán)限。
set global [具體參數(shù)名稱(chēng)]=[VALUE];

3. 口令有效期

如滿(mǎn)足口令定期更換的安全要求時(shí),必須設(shè)置口令的有效期:

-- 必須以root身份執(zhí)行,設(shè)置有效期為90天
set global default_password_lifetime=90;

4. 設(shè)置登錄失敗處理

假如要求你限制登錄失敗的次數(shù)以及失敗次數(shù)達(dá)到上限后鎖定用戶(hù),你該怎么辦?先不急,且聽(tīng)博主分解。

4.1 安裝插件

滿(mǎn)足上述要求,需要安裝MySQL自帶的插件:connection_control,命令如下:

-- 必須以root身份執(zhí)行
INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';

4.2 參數(shù)解釋

參數(shù)名稱(chēng)用途
connection_control_failed_connections_threshold登錄失敗嘗試次數(shù),默認(rèn)3,如0代表不限制。
connection_control_max_connection_delay登錄失敗次數(shù)滿(mǎn)后,再次響應(yīng)的最大延遲時(shí)間(毫秒),建議默認(rèn)
connection_control_min_connection_delay登錄失敗次數(shù)滿(mǎn)后,再次響應(yīng)的最小延遲時(shí)間(毫秒)。

4.3 調(diào)整參數(shù)

掌握了參數(shù)特征后,我們同樣可以按需調(diào)整相關(guān)參數(shù)的值,執(zhí)行命令如下:

--必須以root身份執(zhí)行,且擁有super權(quán)限。
set global [具體參數(shù)名稱(chēng)]=[VALUE];

5. 設(shè)置登錄保持時(shí)間

設(shè)置保持登錄的有效期,過(guò)期自動(dòng)退出登錄狀態(tài):

-- 必須以root身份執(zhí)行,設(shè)置保持登錄的有效期為1800秒
set global wait_timeout=1800;

結(jié)語(yǔ)

本文通過(guò)案例介紹的方式,針對(duì)MySQL不同的安全場(chǎng)景,制定差異化的解決辦法。當(dāng)然完成該過(guò)程離不開(kāi)MySQL自帶的插件或訪(fǎng)問(wèn)控制能力。

到此這篇關(guān)于MySQL實(shí)現(xiàn)身份鑒別的示例代碼的文章就介紹到這了,更多相關(guān)MySQL 身份鑒別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql全文搜索對(duì)模糊查詢(xún)的性能提升測(cè)試方式

    Mysql全文搜索對(duì)模糊查詢(xún)的性能提升測(cè)試方式

    這篇文章主要介紹了Mysql全文搜索對(duì)模糊查詢(xún)的性能提升測(cè)試方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Mysql通過(guò)ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟

    Mysql通過(guò)ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟

    mysql在使用的過(guò)程中,難免遇到數(shù)據(jù)庫(kù)表誤操作,下面這篇文章主要給大家介紹了關(guān)于Mysql通過(guò)ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • mysql自增navicat_navicat如何設(shè)置主鍵自增

    mysql自增navicat_navicat如何設(shè)置主鍵自增

    通過(guò)Navicat設(shè)置MySQL表的主鍵自增,步驟包括:打開(kāi)Navicat連接數(shù)據(jù)庫(kù),選擇表并設(shè)計(jì),右擊id字段設(shè)置為主鍵,然后勾選自動(dòng)遞增功能,這樣每次插入新記錄時(shí),id字段都會(huì)自動(dòng)遞增
    2025-01-01
  • MySQL報(bào)錯(cuò)Lost connection to MySQL server during query的解決方案

    MySQL報(bào)錯(cuò)Lost connection to MySQL server&n

    在確保網(wǎng)絡(luò)沒(méi)有問(wèn)題的情況下,服務(wù)器正常運(yùn)行一段時(shí)間后,數(shù)據(jù)庫(kù)拋出了異常"Lost connection to MySQL server during query",本文將給大家介紹MySQL報(bào)錯(cuò)Lost connection to MySQL server during query的解決方案,需要的朋友可以參考下
    2024-01-01
  • 一文帶你深入了解并掌握MySQL的DML和DCL

    一文帶你深入了解并掌握MySQL的DML和DCL

    在數(shù)據(jù)庫(kù)管理中,數(shù)據(jù)操作語(yǔ)言(DML)和數(shù)據(jù)控制語(yǔ)言(DCL)是至關(guān)重要的概念,DML使我們能夠?qū)?shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增加、修改和刪除操作,本文將深入探討這兩個(gè)關(guān)鍵領(lǐng)域的核心概念和操作方法,幫助您更好地理解和應(yīng)用數(shù)據(jù)庫(kù)管理技術(shù)
    2024-02-02
  • mysql 5.7.17 以及workbench安裝配置圖文教程

    mysql 5.7.17 以及workbench安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.17 以及workbench安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • mysql 5.7.14 安裝配置代碼分享

    mysql 5.7.14 安裝配置代碼分享

    這篇文章主要為大家分享了CentOS 6.6下mysql 5.7.13winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-09-09
  • Mysql中replace與replace into的用法講解

    Mysql中replace與replace into的用法講解

    今天小編就為大家分享一篇關(guān)于Mysql中replace與replace into的用法講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 關(guān)于Mysql搭建主從復(fù)制功能的步驟實(shí)現(xiàn)

    關(guān)于Mysql搭建主從復(fù)制功能的步驟實(shí)現(xiàn)

    這篇文章主要介紹了關(guān)于Mysql搭建主從復(fù)制功能的步驟實(shí)現(xiàn),在實(shí)際的生產(chǎn)中,為了解決Mysql的單點(diǎn)故障已經(jīng)提高M(jìn)ySQL的整體服務(wù)性能,一般都會(huì)采用主從復(fù)制,需要的朋友可以參考下
    2023-05-05
  • 如何用workbench導(dǎo)出mysql數(shù)據(jù)庫(kù)關(guān)系圖

    如何用workbench導(dǎo)出mysql數(shù)據(jù)庫(kù)關(guān)系圖

    用workbench導(dǎo)出mysql數(shù)據(jù)庫(kù)關(guān)系圖的解決方法,需要的朋友請(qǐng)往下閱讀
    2013-03-03

最新評(píng)論