一、前言
很多文章中會說,數(shù)據(jù)庫的權(quán)限按最小權(quán)限為原則,這句話本身沒有錯(cuò),但是卻是一句空話。因?yàn)樽钚?quán)限,這個(gè)東西太抽象,很多時(shí)候你并弄不清楚具體他需要哪些權(quán)限。 現(xiàn)在很多mysql用著root賬戶在操作,并不是大家不知道用root權(quán)限太大不安全,而是很多人并不知道該給予什么樣的權(quán)限既安全又能保證正常運(yùn)行。所以,本文更多的是考慮這種情況下,我們該如何簡單的配置一個(gè)安全的mysql。注:本文測試環(huán)境為mysql-5.6.4
二、Mysql權(quán)限介紹
mysql中存在4個(gè)控制權(quán)限的表,分別為user表,db表,tables_priv表,columns_priv表。
mysql權(quán)限表的驗(yàn)證過程為:
1.先從user表中的Host,User,Password這3個(gè)字段中判斷連接的ip、用戶名、密碼是否存在,存在則通過驗(yàn)證。
2.通過身份認(rèn)證后,進(jìn)行權(quán)限分配,按照user,db,tables_priv,columns_priv的順序進(jìn)行驗(yàn)證。即先檢查全局權(quán)限表user,如果user中對應(yīng)的權(quán)限為Y,則此用戶對所有數(shù)據(jù)庫的權(quán)限都為Y,將不再檢查db, tables_priv,columns_priv;如果為N,則到db表中檢查此用戶對應(yīng)的具體數(shù)據(jù)庫,并得到db中為Y的權(quán)限;如果db中為N,則檢查tables_priv中此數(shù)據(jù)庫對應(yīng)的具體表,取得表中的權(quán)限Y,以此類推。
三、mysql有哪些權(quán)限


四、數(shù)據(jù)庫層面(db表)的權(quán)限分析

五、mysql安全配置方案
1 限制訪問mysql端口的ip
windows可以通過windows防火墻或者ipsec來限制,linux下可以通過iptables來限制。
2 修改mysql的端口
windows下可以修改配置文件my.ini來實(shí)現(xiàn),linux可以修改配置文件my.cnf來實(shí)現(xiàn)。
3 對所有用戶設(shè)置強(qiáng)密碼并嚴(yán)格指定對應(yīng)賬號的訪問ip
mysql中可在user表中指定用戶的訪問可訪問ip
4 root特權(quán)賬號的處理
建議給root賬號設(shè)置強(qiáng)密碼,并指定只容許本地登錄
5 日志的處理
如需要可開啟查詢?nèi)罩荆樵內(nèi)罩緯涗浀卿浐筒樵冋Z句。
6 mysql進(jìn)程運(yùn)行賬號
在windows下禁止使用local system來運(yùn)行mysql賬戶,可以考慮使用network service或者自己新建一個(gè)賬號,但是必須給與mysql程序所在目錄的讀取權(quán)限和data目錄的讀取和寫入權(quán)限; 在linux下,新建一個(gè)mysql賬號,并在安裝的時(shí)候就指定mysql以mysql賬戶來運(yùn)行,給與程序所在目錄的讀取權(quán)限,data所在目錄的讀取和寫入權(quán)限。
新聞熱點(diǎn)
疑難解答
圖片精選