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

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

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

前言

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

在這里插入圖片描述

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

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

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

一、有效性檢查

1. 用戶唯一

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

SELECT USER, HOST FROM mysql.user;

2. 啟用密碼驗證

檢查PLUGIN是否包含*_password

-- mysql_native_password,身份驗證插件
SELECT USER, HOST, PLUGIN FROM mysql.user;

3. 是否存在空口令用戶

檢查authentication_string是否存在空值:

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

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

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

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

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

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

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

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

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

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

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

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

二、應(yīng)對方案

針對第一部分的有效性檢查中,涉及不滿足的配置項,我們可以通過以下措施加以彌補。

1. 空口令問題

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

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

2. 口令復(fù)雜度

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

2.1 安裝插件

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

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

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

SHOW VARIABLES LIKE 'validate%';

在這里插入圖片描述

2.2 參數(shù)解釋

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

2.2.1 validate_password_policy

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

2.2.2 配套參數(shù)

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

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

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

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

3. 口令有效期

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

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

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

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

4.1 安裝插件

滿足上述要求,需要安裝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ù)名稱用途
connection_control_failed_connections_threshold登錄失敗嘗試次數(shù),默認(rèn)3,如0代表不限制。
connection_control_max_connection_delay登錄失敗次數(shù)滿后,再次響應(yīng)的最大延遲時間(毫秒),建議默認(rèn)
connection_control_min_connection_delay登錄失敗次數(shù)滿后,再次響應(yīng)的最小延遲時間(毫秒)。

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

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

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

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

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

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

結(jié)語

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

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

相關(guān)文章

  • SQL Server COALESCE函數(shù)詳解及實例

    SQL Server COALESCE函數(shù)詳解及實例

    這篇文章主要介紹了SQL Server COALESCE函數(shù)詳解及實例的相關(guān)資料,COALESCE函數(shù)比ISNULL更加強大,這個函數(shù)的確非常有用,需要的朋友可以參考下
    2016-12-12
  • 最新評論

    英山县| 加查县| 新安县| 会泽县| 布尔津县| 湘潭县| 瑞昌市| 玉田县| 玉田县| 东丰县| 乃东县| 武强县| 淅川县| 通辽市| 大丰市| 四平市| 肥西县| 凌云县| 哈密市| 盘锦市| 克什克腾旗| 玉树县| 舟曲县| 台湾省| 乌拉特后旗| 宝应县| 库尔勒市| 东城区| 金湖县| 米脂县| 久治县| 重庆市| 沾益县| 金寨县| 阿克陶县| 屏东市| 富平县| 涡阳县| 大渡口区| 肃北| 广水市|