MySQL文件權(quán)限存在的安全問(wèn)題和解決方案
在實(shí)際生產(chǎn)環(huán)境中,應(yīng)按照軟件安全設(shè)計(jì)的「最小特權(quán)原則」設(shè)置MySQL的文件權(quán)限。
- MySQL「安裝目錄」的屬主和屬組需要設(shè)置成mysql用戶;
- MySQL的「歷史操作文件」、「歷史命令文件」、「數(shù)據(jù)物理存儲(chǔ)文件」只給屬主用戶讀寫(xiě)權(quán)限;
- MySQL的「配置文件」只給屬主用戶讀寫(xiě)權(quán)限,屬組和其他用戶給只讀權(quán)限。
依次執(zhí)行下列命令,檢查權(quán)限是否符合要求:
- ll ~/.mysql_history ~/.bash_history 權(quán)限600
- ll /etc/my.cnf 權(quán)限644
- find / -name *.ibd | xargs ls -al 權(quán)限600
- find / -name *.MYD | xargs ls -al 權(quán)限600
- find / -name *.MYI| xargs ls -al 權(quán)限600
- find / -name *.frm| xargs ls -al 權(quán)限600
接下來(lái)給大家解釋一下這些文件都是干嘛的。
1、數(shù)據(jù)庫(kù)配置文件
/etc/my.cnf
是MySQL數(shù)據(jù)庫(kù)「配置文件」,為了防止未授權(quán)篡改,應(yīng)設(shè)置權(quán)限為 644。
ll /etc/my.cnf
檢查配置文件權(quán)限:
/etc/my.cnf
默認(rèn)有以下字段:
- datadir:數(shù)據(jù)庫(kù)目錄
- socket:MySQL客戶端程序與服務(wù)端通信的套接字文件
- log-error:日志位置
- pid-file:存放MySQL進(jìn)程id的文件
2、數(shù)據(jù)存儲(chǔ)文件
MySQL每創(chuàng)建一個(gè)「表」,都會(huì)在數(shù)據(jù)庫(kù)目錄下創(chuàng)建一個(gè)「二進(jìn)制文件」,用來(lái)存儲(chǔ)表中的「數(shù)據(jù)」。
下圖中可以看到,除了information_schema 和 performance_schema ,每個(gè)數(shù)據(jù)庫(kù)都對(duì)應(yīng)一個(gè)目錄,目錄下存放這個(gè)數(shù)據(jù)庫(kù)的表文件。
MySQL8.0以前,數(shù)據(jù)存儲(chǔ)文件統(tǒng)一用 .frm
擴(kuò)展名。
MySQL8.0以后,不同的數(shù)據(jù)庫(kù)引擎,保存文件的擴(kuò)展名不一樣。
- InnoDB:獨(dú)享表空間用 .idb,一個(gè)表對(duì)應(yīng)一個(gè)文件;共享表空間用 .ibdata,多個(gè)表公用一個(gè)文件。
- MyISAM:表的數(shù)據(jù)用 .MYD;表的索引用 .MYI。
- Archive: .arc
- CSV: .csv
查看支持的引擎 show engines;,default表示默認(rèn),正在使用的引擎。
為了防止未授權(quán)訪問(wèn)和篡改,數(shù)據(jù)存儲(chǔ)文件的權(quán)限應(yīng)配置為 600。
檢查數(shù)據(jù)庫(kù)文件的權(quán)限:
find / -name *.ibd | xargs ls -al
find / -name *.MYD | xargs ls -al
find / -name *.MYI| xargs ls -al
find / -name *.frm| xargs ls -al
3、歷史操作文件
~/.mysql_history
和 ~/.bash_history
分別存儲(chǔ)MySQL「歷史操作命令」和「系統(tǒng)歷史命令」。
為了防止未授權(quán)訪問(wèn)和篡改,應(yīng)將文件權(quán)限配置為 600。
ll ~/.mysql_history ~/.bash_history
以上就是MySQL文件權(quán)限存在的安全問(wèn)題和解決方案的詳細(xì)內(nèi)容,更多關(guān)于MySQL文件權(quán)限的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL中設(shè)置NULL和空白字符串的問(wèn)題及解決
這篇文章主要介紹了MySQL中設(shè)置NULL和空白字符串的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Mysql?InnoDB聚簇索引二級(jí)索引聯(lián)合索引特點(diǎn)
這篇文章主要為大家介紹了Mysql?InnoDB聚簇索引二級(jí)索引聯(lián)合索引特點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報(bào)錯(cuò)的解決方法
這篇文章主要介紹了Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03mysql更新一個(gè)表里的字段等于另一個(gè)表某字段的值實(shí)例
下面小編就為大家?guī)?lái)一篇mysql更新一個(gè)表里的字段等于另一個(gè)表某字段的值實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03prometheus監(jiān)控MySQL并實(shí)現(xiàn)可視化的操作詳解
mysqld_exporter?是一個(gè)用于監(jiān)控?MySQL?服務(wù)器的開(kāi)源工具,它是由?Prometheus?社區(qū)維護(hù)的一個(gè)官方?Exporter,本文給大家介紹了prometheus監(jiān)控MySQL并實(shí)現(xiàn)可視化的操作,文中通過(guò)代碼和圖文講解的非常詳細(xì),需要的朋友可以參考下2024-04-04mysql如何查找連續(xù)出現(xiàn)n次以上的數(shù)
這篇文章主要介紹了mysql如何查找連續(xù)出現(xiàn)n次以上的數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05mysql 日期和時(shí)間格式轉(zhuǎn)換實(shí)現(xiàn)語(yǔ)句
對(duì)于每個(gè)類型擁有的值范圍以及并且指定日期何時(shí)間值的有效格式的描述見(jiàn)7.3.6 日期和時(shí)間類型。2009-10-10