一、MySQL許可權系統通過兩個階段進行認證: (A) 對用戶進行身份認證,IP地址和用戶名聯合, (B) 對合法用戶賦予相應許可權,許可權表在資料庫啟動的時候載入記憶體中。 二、在許可權的存取過程中,會用到”mysql“資料庫中的user、host和db這3個許可權表。兩階段驗證過程 (A) user表中 h ...
一、MySQL許可權系統通過兩個階段進行認證:
(A) 對用戶進行身份認證,IP地址和用戶名聯合,
(B) 對合法用戶賦予相應許可權,許可權表在資料庫啟動的時候載入記憶體中。
二、在許可權的存取過程中,會用到”mysql“資料庫中的user、host和db這3個許可權表。兩階段驗證過程
(A) user表中 host、user和password判斷是否可連接。
(B) 許可權表順序 user->db->tables_priv->columns_priv。
user表中的每個許可權都代表了對所有資料庫都有的許可權,db表中的每個許可權都代表了對特定資料庫才有的許可權。
三、賬號管理
創建賬號的兩種方式:使用GRANT語法創建或直接操作授權表,推薦第一種。
修改許可權可以使用 GRANT和REVOKE命令。
四、安全問題
(A) 嚴格控制操作系統帳號和許可權
(B) 儘量避免以root許可權運行MySQL
(C) 防止DNS欺騙
(D) 刪除匿名賬戶
(E) 給root賬號設置口令
(F) 設置安全密碼
(G) 只授予賬號必須的許可權
(H) 只讓root擁有mysql庫user表的存取許可權
(I) 只讓 管理員擁有 FILE、PROCESS和SUPER許可權
(J) DROP TABLE 並不會回收以前的相關訪問授權
(K) 使用SSL
(L) 給所有用戶加IP限制
(M) 註意REVOKE命令的漏洞