用戶是數(shù)據(jù)庫的使用者和管理者。
MySQL通過用戶的設(shè)置來控制數(shù)據(jù)庫操作人員的訪問與操作范圍潮针。
服務(wù)器中名為mysql的數(shù)據(jù)庫术荤,用于維護(hù)數(shù)據(jù)庫的用戶以及權(quán)限的控制和管理。
MySQL中的所有用戶信息都保存在mysql.user數(shù)據(jù)表中每篷。
根據(jù)mysql.user表字段的功能可將其分為6類
- 客戶端訪問服務(wù)器的賬號字段
- 驗(yàn)證用戶身份的字段
- 安全連接的字段
- 資源限制的字段
- 權(quán)限字段
- 賬戶是否鎖定的字段
1.賬號字段
Host和User字段共同組成的復(fù)合主鍵用于區(qū)分MySQL中的賬戶
- User字段用于代表用戶的名稱瓣戚。
- Host字段表示允許訪問的客戶端IP地址或主機(jī)地址。
- 當(dāng)Host的值為“*”時(shí)焦读,表示所有客戶端的用戶都可以訪問子库。
SELECT host, user FROM mysql.user;
- root:默認(rèn)的超級用戶。
- session:MySQL5.7新增用戶矗晃,用于用戶身份驗(yàn)證仑嗅。
- sys:MySQL5.7新增用戶,用于系統(tǒng)模式對象的定義张症,防止DBA(數(shù)據(jù)庫管理員)重命名或刪除root用戶時(shí)發(fā)生錯(cuò)誤仓技。
- 默認(rèn)情況下,用戶mysql.session和mysql.sys已被鎖定俗他,使得數(shù)據(jù)庫操作人員無法使用這兩個(gè)用戶通過客戶端連接MySQL服務(wù)器脖捻。因此,建議讀者不要隨意解鎖和使用mysql.session和mysql.sys用戶兆衅,否則可能會(huì)有意想不到的事情發(fā)生地沮。
2.身份驗(yàn)證字段
在MySQL5.7中,mysql.user表中已不再包含Password字段羡亩,而是使用plugin和 authentication_string字段保存用戶身份驗(yàn)證的信息
- plugin字段用于指定用戶的驗(yàn)證插件名稱摩疑。
- authentication_string字段是根據(jù)plugin指定的插件算法對賬戶明文密碼(如123456)加密后的字符串。
SELECT plugin, authentication_string FROM mysql.user WHERE user='root';
- MySQL中root用戶的默認(rèn)驗(yàn)證插件名為mysql_native_password畏铆。
- authentication_string字段保存的則是一串不能看出具體含義的值雷袋,相對于能夠直接看懂的明文密碼(如123456),它是經(jīng)過加密處理的暗碼辞居。
- 其他與身份驗(yàn)證的賬號密碼相關(guān)的字段還有password_expired(密碼是否過期)楷怒、password_last_changed(密碼最后一次修改的時(shí)間)以及password_lifetime(密碼的有效期)寨腔。
3.安全連接字段
判斷當(dāng)前連接是否符合SSL安全協(xié)議
- ssl_type:用于保存安全連接的類型,它的可選值有''(空)率寡、ANY(任意類型)迫卢、X509(X509證書)、SPECIFIED(規(guī)定的)四種冶共。
- ssl_cipher:用于保存安全加密連接的特定密碼乾蛤。
- x509_issuer:保存由CA簽發(fā)的有效的X509證書。
- x509_subject:保存包含主題的有效X509證書捅僵。
通常標(biāo)準(zhǔn)的發(fā)行版MySQL已禁用SSL加密連接
SHOW VARIABLES LIKE 'have_openssl';
4.資源限制字段
以“max_”開頭的字段家卖,保存對用戶可使用的服務(wù)器資源的限制。
用來防止用戶登錄MySQL服務(wù)器后的不法或不合規(guī)范的操作浪費(fèi)服務(wù)器的資源庙楚。
用戶資源限制字段默認(rèn)值均為0上荡,表示對此用戶沒有任何的資源限制。
max_questions:保存每小時(shí)允許用戶執(zhí)行查詢操作的最多次數(shù)馒闷。
max_updates:保存每小時(shí)允許用戶執(zhí)行更新操作的最多次數(shù)酪捡。
max_connections:保存每小時(shí)允許用戶建立連接的最多次數(shù)。
max_user_connections:保存允許單個(gè)用戶同時(shí)建立連接的最多數(shù)量纳账。
5.權(quán)限字段
以“_priv”結(jié)尾的字段一共有29個(gè)逛薇,這些字段保存了用戶的全局權(quán)限,如Select_priv查詢權(quán)限疏虫、Insert_priv插入權(quán)限永罚,Update_priv更新權(quán)限等。
user表對應(yīng)的權(quán)限字段的數(shù)據(jù)類型都是ENUM枚舉類型卧秘,取值只有N或Y兩種呢袱。
N表示該用戶沒有對應(yīng)權(quán)限,默認(rèn)值都為N翅敌。
Y表示該用戶有對應(yīng)權(quán)限羞福。
6.賬戶鎖定字段
account_locked字段用于保存當(dāng)前用戶是鎖定、還是解鎖狀態(tài)哼御。
該字段是一個(gè)枚舉類型坯临,當(dāng)其值為N時(shí)表示解鎖焊唬,此用戶可以用于連接服務(wù)器恋昼。
當(dāng)其值為Y時(shí)表示該用戶已被鎖定,不能用于連接服務(wù)器使用赶促。