二維碼
        企資網

        掃一掃關注

        當前位置: 首頁 » 企資快訊 » 匯總 » 正文

        等保測評2.0:MySQL身份鑒別(上)

        放大字體  縮小字體 發布日期:2021-08-22 01:02:41    作者:史舒文    瀏覽次數:21
        導讀

        一、 說明本篇文章主要說一下MySQL數據中身份鑒別控制點中a測評項的相關知識點和理解。二、 MySQL用戶2.1. 用戶身份標識MySQL數據庫對于用戶的標識和其她數據庫有些不一樣,不僅僅是用戶名,而是username + host。My

        一、 說明

        本篇文章主要說一下MySQL數據中身份鑒別控制點中a測評項的相關知識點和理解。

        二、 MySQL用戶

        2.1. 用戶身份標識

        MySQL數據庫對于用戶的標識和其她數據庫有些不一樣,不僅僅是用戶名,而是username + host。
        MySQL數據中user表的一部分字段如下:

        這三個用戶的用戶名雖然都是root,但其實是三個不同的用戶,其密碼也是單獨設置的。
        查詢當前登錄賬戶,也可以看到用戶的標識組成為username+host:

        2.2. 登錄匹配機制

        既然用戶的標示是兩個字段的組合,匹配的時候也要這兩個字段都匹配上了才行,這里我簡單的說一說(根據官方文檔)。
        當客戶端對MySQL發起連接后,MySQL會先對user表進行排序,然后從第一行開始,逐行與傳入的host、username進行匹配,當匹配到了某一行之后,就不往下繼續匹配了。(如果任何一行都無法匹配,則登錄失敗)
        此時,再來對比傳入的口令和存儲的口令是否一致,如果口令一致,那么該行即為這次登陸后所使用的行(用戶身份)。
        如果不一致,則登錄失敗。
        舉個例子,如果用戶表如下所示:

        那么當驗證時,會首先對其進行排序,排序如下:

        注意,Host字段可以使用匹配符%,%則代表匹配任何Ip地址。另外,空字符串也代表匹配任何Ip地址。
        而User字段不使用匹配符%,但是如果為空字符串,則代表匹配任何用戶名。


        MySQL排序時是先對Host進行排序,然后才是User。
        Host的排序為明確的值排在前面,比如文字主機名和IP地址即為明確的地址值,所以%和空字符串排在她們之后,其中空字符串又排在%之后。
        當Host字段向同時,則對User字段進行排序,對于User字段也是明確的值排在前面,所以在排序結果圖中,root@localhost排在了@localhost(空字符串用戶名)的前面。
        如果Host字段和User字段都一樣,那么排序的順序是不確定的(可能和創建該用戶的先后有關)。
        所以客戶端連接MySQL數據庫時,使用給定的用戶名,不一定會以該用戶名的身份登入數據庫。
        比如使用用戶名jeffrey和她的口令,在本地的mysql中進行登錄時,會按照排序結果圖中,一行行的去匹配:

        對于第一行,客戶端的Host(localhost或者127.0.0.1)可以和Host字段的localhost匹配上,但是User不一樣,無法完全匹配,所以往下走。
        對于第二行,客戶端的Host(localhost或者127.0.0.1)可以和Host字段的localhost匹配上,而第二行的用戶名是空字符串,可以匹配任何用戶名,所以也能匹配jeffrey,如果口令一致,則完成了匹配,到此匹配過程結束。
        這樣,雖然使用了用戶名jeffrey,但最后卻會以@localhost的身份登入數據庫。
        最后,User表的口令字段可以為空字符串,這代表口令為空字符串,而不是與任何口令都匹配。

        2.3. 查詢當前用戶

        MySQL中存在user()函數和current_user()函數。
        user()函數會顯示你當前的登錄用戶具體是使用了什么用戶名和什么ip地址去進行登錄的。(注,ip地址是指連接數據庫的客戶端的ip地址,不是自己設置的值)
        例子如下:


        這里代表在ip地址為192.168.203.132的客戶端上,使用用戶名test對MySQL數據庫進行了連接。
        current_user()函數會顯示你最終使用的用戶身份(也就是最后匹配到的那一行),例子如下:


        也就是,最后在User表中匹配到了Host字段為192.168.%.%、User字段為test的那一行,以test@192.168..%.%的用戶身份登錄了MySQL數據庫。

        2.4. 口令字段

        在MySQL5.7之前,User表中的口令字段為Password,從MySQL5.7開始,口令字段變成了authentication_string。
        不過在MySQL5.7之前,比如MySQL5.5.53,也存在著authentication_string字段,不知道其用途是什么。

        三、測評項a

        a)應對登錄的用戶進行身份標識和鑒別,身份標識具有唯一性,身份鑒別信息具有復雜度要求并定期更換;

        3.1. 測評項要求1

        應對登錄的用戶進行身份標識和鑒別
        對于MySQL來說,如上文所言,用戶的身份標識為username + host,鑒別就是通過username + host + password來進行登錄驗證。
        所以,對于這個要求,就是不能出現空用戶名、空密碼、任意host的用戶,也就是鑒別的因素三者同時皆空。
        其中任何一個不為空或%(對Host而言),則都算實現了鑒別(部分鑒別)。

        3.2. 測評項要求2

        身份標識具有唯一性
        對于MySQL來說,如上文所言,用戶的身份標識為username + host,MySQL并沒有禁止出現完全一樣的username + host行,所以這里是可能出現身份標識不唯一的情況的。

         
        (文/史舒文)
        免責聲明
        本文僅代表作發布者:史舒文個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

        粵ICP備16078936號

        微信

        關注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯系
        客服

        聯系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        yy111111少妇影院里无码| 一本大道香蕉中文在线高清 | 国产午夜片无码区在线播放| 久久人妻少妇嫩草AV无码蜜桃| 亚洲中文字幕无码一区二区三区| 无码日韩人妻AV一区二区三区 | 无码AV中文字幕久久专区| 18禁无遮拦无码国产在线播放| 亚洲男人第一无码aⅴ网站| 国产精品无码v在线观看| 中文字幕在线免费| 亚洲欧美日韩中文久久| 亚洲一区二区三区无码中文字幕 | 国产中文在线观看| 人妻系列无码专区无码中出| 亚洲一区AV无码少妇电影☆| 无码毛片一区二区三区视频免费播放| 久久有码中文字幕| 亚洲国产精品无码久久九九| 久久久久亚洲AV片无码下载蜜桃 | 日韩爆乳一区二区无码| 波多野结衣在线aⅴ中文字幕不卡| 亚洲AV无码乱码在线观看富二代| 国产激情无码一区二区三区| 亚洲精品无码久久不卡| 无码国产伦一区二区三区视频| 中文字幕14页影音先锋| 国产精品无码免费专区午夜| 一本色道无码不卡在线观看 | 亚洲AV无码成人精品区大在线| 亚洲性无码一区二区三区| 91中文在线视频| 久久无码精品一区二区三区| 无码一区二区三区| 中文字幕国产第一页首页| 一夲道无码人妻精品一区二区| 暖暖免费日本在线中文| 午夜亚洲av永久无码精品 | 亚洲国产精品无码久久久蜜芽 | 中文字幕无码精品三级在线电影 | 精品久久久久久无码专区不卡|