二維碼
        企資網

        掃一掃關注

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

        等保測評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

        反饋

        用戶
        反饋

        最近中文字幕高清免费中文字幕mv | 性无码专区无码片| 中文字幕在线看视频一区二区三区| 最近中文字幕免费完整| 亚洲av无码一区二区三区在线播放 | 无码国产精品一区二区免费vr| 亚洲国产精品无码久久一区二区 | 亚洲一区二区三区无码中文字幕| 亚洲男人第一无码aⅴ网站| 亚洲不卡无码av中文字幕| 日本高清不卡中文字幕免费| 亚洲色无码播放| 在线高清无码A.| 午夜无码伦费影视在线观看| 亚洲乱亚洲乱少妇无码| 中文字幕有码无码AV| 99久久无色码中文字幕人妻| 最近2018中文字幕免费视频| 精品无码国产污污污免费网站 | 久久精品中文字幕久久| 国产一区三区二区中文在线 | 久久精品无码av| 无码精品A∨在线观看中文| 日本中文字幕在线2020| 久久精品中文无码资源站| 中文字幕在线免费看线人| 日韩欧精品无码视频无删节| а天堂8中文最新版在线官网| AAA级久久久精品无码区| 亚洲中文字幕第一页在线| 日韩精品无码一本二本三本| 无码H黄肉动漫在线观看网站| 日韩精品人妻一区二区中文八零 | 亚洲av午夜国产精品无码中文字| 国产成人无码免费看片软件| 免费无码一区二区三区蜜桃| 国产午夜精品无码| 日韩中文字幕在线视频| 少妇无码?V无码专区在线观看| 久久中文字幕视频、最近更新| 亚洲Av无码国产情品久久 |