一、mysql權(quán)限系統(tǒng)通過(guò)兩個(gè)階段進(jìn)行認(rèn)證:
(A) 對(duì)用戶(hù)進(jìn)行身份認(rèn)證,IP地址和用戶(hù)名聯(lián)合,
(B) 對(duì)合法用戶(hù)賦予相應(yīng)權(quán)限,權(quán)限表在數(shù)據(jù)庫(kù)啟動(dòng)的時(shí)候載入內(nèi)存中。
二、在權(quán)限的存取過(guò)程中,會(huì)用到”mysql“數(shù)據(jù)庫(kù)中的user、host和db這3個(gè)權(quán)限表。兩階段驗(yàn)證過(guò)程
(A) user表中 host、user和password判斷是否可連接。
(B) 權(quán)限表順序 user->db->tables_priv->columns_priv。
user表中的每個(gè)權(quán)限都代表了對(duì)所有數(shù)據(jù)庫(kù)都有的權(quán)限,db表中的每個(gè)權(quán)限都代表了對(duì)特定數(shù)據(jù)庫(kù)才有的權(quán)限。
三、賬號(hào)管理
創(chuàng)建賬號(hào)的兩種方式:使用GRANT語(yǔ)法創(chuàng)建或直接操作授權(quán)表,推薦第一種。
修改權(quán)限可以使用 GRANT和REVOKE命令。
四、安全問(wèn)題
(A) 嚴(yán)格控制操作系統(tǒng)帳號(hào)和權(quán)限
(B) 盡量避免以root權(quán)限運(yùn)行MySQL
(C) 防止DNS欺騙
(D) 刪除匿名賬戶(hù)
(E) 給root賬號(hào)設(shè)置口令
(F) 設(shè)置安全密碼
(G) 只授予賬號(hào)必須的權(quán)限
(H) 只讓root擁有mysql庫(kù)user表的存取權(quán)限
(I) 只讓 管理員擁有 FILE、PROCESS和SUPER權(quán)限
(J) DROP TABLE 并不會(huì)回收以前的相關(guān)訪問(wèn)授權(quán)
(K) 使用SSL
(L) 給所有用戶(hù)加IP限制
(M) 注意REVOKE命令的漏洞