• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    保障MySQL數(shù)據(jù)安全的14個(gè)最佳方法

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 16:15:41
    文檔

    保障MySQL數(shù)據(jù)安全的14個(gè)最佳方法

    保障MySQL數(shù)據(jù)安全的14個(gè)最佳方法:有的企業(yè)在安裝MySQL時(shí)用的是默認(rèn)選項(xiàng),由此造成其數(shù)據(jù)不安全,且服務(wù)器也面臨被入侵的風(fēng)險(xiǎn),并有可能在短時(shí)間內(nèi)就出現(xiàn)性能問題。本文將提供保障MySQL安全的最佳方法。 MySQL數(shù)據(jù)庫(kù)一貫以高性能、高可性和易用性著稱,它已經(jīng)成為世界上最流行的開源數(shù)據(jù)庫(kù)。
    推薦度:
    導(dǎo)讀保障MySQL數(shù)據(jù)安全的14個(gè)最佳方法:有的企業(yè)在安裝MySQL時(shí)用的是默認(rèn)選項(xiàng),由此造成其數(shù)據(jù)不安全,且服務(wù)器也面臨被入侵的風(fēng)險(xiǎn),并有可能在短時(shí)間內(nèi)就出現(xiàn)性能問題。本文將提供保障MySQL安全的最佳方法。 MySQL數(shù)據(jù)庫(kù)一貫以高性能、高可性和易用性著稱,它已經(jīng)成為世界上最流行的開源數(shù)據(jù)庫(kù)。

    有的企業(yè)在安裝MySQL時(shí)用的是默認(rèn)選項(xiàng),由此造成其數(shù)據(jù)不安全,且服務(wù)器也面臨被入侵的風(fēng)險(xiǎn),并有可能在短時(shí)間內(nèi)就出現(xiàn)性能問題。本文將提供保障MySQL安全的最佳方法。 MySQL數(shù)據(jù)庫(kù)一貫以高性能、高可性和易用性著稱,它已經(jīng)成為世界上最流行的開源數(shù)據(jù)庫(kù)。

      有的企業(yè)在安裝MySQL時(shí)用的是默認(rèn)選項(xiàng),由此造成其數(shù)據(jù)不安全,且服務(wù)器也面臨被入侵的風(fēng)險(xiǎn),并有可能在短時(shí)間內(nèi)就出現(xiàn)性能問題。本文將提供保障MySQL安全的最佳方法。


      MySQL數(shù)據(jù)庫(kù)一貫以高性能、高可性和易用性著稱,它已經(jīng)成為世界上最流行的開源數(shù)據(jù)庫(kù)。大量的個(gè)人、WEB開發(fā)者、大型公司等都在其網(wǎng)站、關(guān)鍵系統(tǒng)、軟件包中廣泛使用MySQL數(shù)據(jù)庫(kù)。


      通常,許多企業(yè)在部署一種產(chǎn)品時(shí),安全性常常得不到應(yīng)有的重視。企業(yè)最關(guān)心的是使其可以盡快地運(yùn)行,企業(yè)由此也可以盡快贏利。


      但有的企業(yè)在安裝MySQL時(shí)用的是默認(rèn)選項(xiàng),由此造成其數(shù)據(jù)不安全,且服務(wù)器也面臨被入侵的風(fēng)險(xiǎn),并有可能在短時(shí)間內(nèi)就出現(xiàn)性能問題。


      下面將提供保障MySQL安全的最佳方法:


      1、避免從互聯(lián)網(wǎng)訪問MySQL數(shù)據(jù)庫(kù),確保特定主機(jī)才擁有訪問特權(quán)


      直接通過本地網(wǎng)絡(luò)之外的計(jì)算機(jī)改變生產(chǎn)環(huán)境中的數(shù)據(jù)庫(kù)是異常危險(xiǎn)的。有時(shí),管理員會(huì)打開主機(jī)對(duì)數(shù)據(jù)庫(kù)的訪問:


      > GRANT ALL ON *.* TO 'root'@'%';


      這其實(shí)是完全放開了對(duì)root的訪問。所以,把重要的操作限制給特定主機(jī)非常重要:


      > GRANT ALL ON *.* TO 'root'@'localhost';


      > GRANT ALL ON *.* TO 'root'@'myip.athome'


      > FLUSH PRIVILEGES


      此時(shí),你仍有完全的訪問,但只有指定的IP(不管其是否靜態(tài))可以訪問。


      2、定期備份數(shù)據(jù)庫(kù)


      任何系統(tǒng)都有可能發(fā)生災(zāi)難。服務(wù)器、MySQL也會(huì)崩潰,也有可能遭受入侵,數(shù)據(jù)有可能被刪除。只有為最糟糕的情況做好了充分的準(zhǔn)備,才能夠在事后快速地從災(zāi)難中恢復(fù)。企業(yè)最好把備份過程作為服務(wù)器的一項(xiàng)日常工作。目前國(guó)內(nèi)軟件多備份在這方面做得很好,基于Cloud 5技術(shù)實(shí)現(xiàn)多個(gè)云平臺(tái)的數(shù)據(jù)互通,自動(dòng)備份,幫助企業(yè)或個(gè)人進(jìn)行數(shù)據(jù)保護(hù)和管理。當(dāng)出現(xiàn)任何問題時(shí),立刻一鍵恢復(fù),即可把原來的數(shù)據(jù)都恢復(fù),做到‘原地滿血復(fù)活’


      3、禁用或限制遠(yuǎn)程訪問


      前面說過,如果使用了遠(yuǎn)程訪問,要確保只有定義的主機(jī)才可以訪問服務(wù)器。這一般是通過TCP wrappers、iptables或任何其它的防火墻軟件或硬件實(shí)現(xiàn)的。


      為限制打開網(wǎng)絡(luò)socket,管理員應(yīng)當(dāng)在my.cnf或my.ini的[mysqld]部分增加下面的參數(shù):


      skip-networking


      這些文件位于windows的C:\Program Files\MySQL\MySQL Server 5.1文件夾中,或在Linux中,my.cnf位于/etc/,或位于/etc/mysql/。這行命令在MySQL啟動(dòng)期間,禁用了網(wǎng)絡(luò)連接的初始化。請(qǐng)注意,在這里仍可以建立與MySQL服務(wù)器的本地連接。


      另一個(gè)可行的方案是,強(qiáng)迫MySQL僅監(jiān)聽本機(jī),方法是在my.cnf的[mysqld]部分增加下面一行:


      bind-address=127.0.0.1


      如果企業(yè)的用戶從自己的機(jī)器連接到服務(wù)器或安裝到另一臺(tái)機(jī)器上的web服務(wù)器,你可能不太愿意禁用網(wǎng)絡(luò)訪問。此時(shí),不妨考慮下面的有限許可訪問:


      mysql> GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'somehost';


      這里,你要把someuser換成用戶名,把somehost換成相應(yīng)的主機(jī)。


      4、設(shè)置root用戶的口令并改變其登錄名


      在linux中,root用戶擁有對(duì)所有數(shù)據(jù)庫(kù)的完全訪問權(quán)。因而,在Linux的安裝過程中,一定要設(shè)置root口令。當(dāng)然,要改變默認(rèn)的空口令,其方法如下:


      Access MySQL控制臺(tái):$ mysql -u root -p


      在MySQL控制臺(tái)中執(zhí)行:


      > SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');


      在實(shí)際操作中,只需將上面一行的new_password換成實(shí)際的口令即可。


      在Linux控制臺(tái)中更改root口令的另一種方法是使用mysqladmin工具:


      $ mysqladmin -u root password new_password


      此時(shí),也是將上面一行的new_password換成實(shí)際的口令即可。


      當(dāng)然,這是需要使用強(qiáng)口令來避免強(qiáng)力攻擊。


      為了更有效地改進(jìn)root用戶的安全性,另一種好方法是為其改名。為此,你必須更新表用戶中的mySQL數(shù)據(jù)庫(kù)。在MySQL控制臺(tái)中進(jìn)行操作:


      > USE mysql;


      > UPDATE user SET user="another_username" WHERE user="root";


      > FLUSH PRIVILEGES;


      然后,通過Linux訪問MySQL控制臺(tái)就要使用新用戶名了:


      $ mysql -u another_username -p


      5、移除測(cè)試(test)數(shù)據(jù)庫(kù)


      在默認(rèn)安裝的MySQL中,匿名用戶可以訪問test數(shù)據(jù)庫(kù)。我們可以移除任何無用的數(shù)據(jù)庫(kù),以避免在不可預(yù)料的情況下訪問了數(shù)據(jù)庫(kù)。因而,在MySQL控制臺(tái)中,執(zhí)行:


      > DROP DATABASE test;


      6、禁用LOCAL INFILE


      另一項(xiàng)改變是禁用”LOAD DATA LOCAL INFILE”命令,這有助于防止非授權(quán)用戶訪問本地文件。在PHP應(yīng)用程序中發(fā)現(xiàn)有新的SQL注入漏洞時(shí),這樣做尤其重要。


      此外,在某些情況下,LOCAL INFILE命令可被用于訪問操作系統(tǒng)上的其它文件(如/etc/passwd),應(yīng)使用下現(xiàn)的命令:


      mysql> LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE table1


      更簡(jiǎn)單的方法是:


      mysql> SELECT load_file("/etc/passwd")


      為禁用LOCAL INFILE命令,應(yīng)當(dāng)在MySQL配置文件的[mysqld]部分增加下面的參數(shù):


      set-variable=local-infile=0


      7、移除匿名賬戶和廢棄的賬戶


      有些MySQL數(shù)據(jù)庫(kù)的匿名用戶的口令為空。因而,任何人都可以連接到這些數(shù)據(jù)庫(kù)。可以用下面的命令進(jìn)行檢查:


      mysql> select * from mysql.user where user="";


      在安全的系統(tǒng)中,不會(huì)返回什么信息。另一種方法是:


      mysql> SHOW GRANTS FOR ''@'localhost';


      mysql> SHOW GRANTS FOR ''@'myhost';


      如果grants存在,那么任何人都可以訪問數(shù)據(jù)庫(kù),至少可以使用默認(rèn)的數(shù)據(jù)庫(kù)“test”。其檢查方法如下:


      shell> mysql -u blablabla


      如果要移除賬戶,則執(zhí)行命令:


      mysql> DROP USER "";


      從MySQL的5.0版開始支持DROP USER命令。如果你使用的老版本的MySQL,你可以像下面這樣移除賬戶:


      mysql> use mysql;


      mysql> DELETE FROM user WHERE user="";


      mysql> flush privileges;


      8、降低系統(tǒng)特權(quán)


      常見的數(shù)據(jù)庫(kù)安全建議都有“降低給各方的特權(quán)”這一說法。對(duì)于MySQL也是如此。一般情況下,開發(fā)人員會(huì)使用最大的許可,不像安全管理一樣考慮許可原則,而這樣做會(huì)將數(shù)據(jù)庫(kù)暴露在巨大的風(fēng)險(xiǎn)中。


      為保護(hù)數(shù)據(jù)庫(kù),務(wù)必保證真正存儲(chǔ)MySQL數(shù)據(jù)庫(kù)的文件目錄是由”mysql” 用戶和” mysql”組所擁有的。


      shell>ls -l /var/lib/mysql


      此外,還要確保僅有用戶”mysql”和root用戶可以訪問/var/lib/mysql目錄。


      Mysql的二進(jìn)制文件存在于/usr/bin/目錄中,它應(yīng)當(dāng)由root用戶或特定的”mysql”用戶所擁有。對(duì)這些文件,其它用戶不應(yīng)當(dāng)擁有“寫”的訪問權(quán):


      shell>ls -l /usr/bin/my*


      9、降低用戶的數(shù)據(jù)庫(kù)特權(quán)


      有些應(yīng)用程序是通過一個(gè)特定數(shù)據(jù)庫(kù)表的用戶名和口令連接到MySQL的,安全人員不應(yīng)當(dāng)給予這個(gè)用戶完全的訪問權(quán)。


      如果攻擊者獲得了這個(gè)擁有完全訪問權(quán)的用戶,他也就擁有了所有的數(shù)據(jù)庫(kù)。查看一個(gè)用戶許可的方法是在MySQL控制臺(tái)中使用命令SHOW GRANT


      >SHOW GRANTS FOR 'user'@'localhost';


      為定義用戶的訪問權(quán),使用GRANT命令。在下面的例子中,user1僅能從dianshang數(shù)據(jù)庫(kù)的billing表中選擇:


      > GRANT SELECT ON billing.dianshang TO 'user1'@'localhost';


      > FLUSH PRIVILEGES;


      如此一來,user1用戶就無法改變數(shù)據(jù)庫(kù)中這個(gè)表和其它表的任何數(shù)據(jù)。


      另一方面,如果你要從一個(gè)用戶移除訪問權(quán),就應(yīng)使用一個(gè)與GRANT命令類似的REVOKE命令:


      > REVOKE SELECT ON billing.ecommerce FROM 'user1'@'localhost';


      > FLUSH PRIVILEGES;


      10、移除和禁用.mysql_history文件


      在用戶訪問MySQL控制臺(tái)時(shí),所有的命令歷史都被記錄在~/.mysql_history中。如果攻擊者訪問這個(gè)文件,他就可以知道數(shù)據(jù)庫(kù)的結(jié)構(gòu)。


      $ cat ~/.mysql_history


      為了移除和禁用這個(gè)文件,應(yīng)將日志發(fā)送到/dev/null。


      $export MYSQL_HISTFILE=/dev/null


      上述命令使所有的日志文件都定向到/dev/null,你應(yīng)當(dāng)從home文件夾移除.mysql_history:$ rm ~/.mysql_history,并創(chuàng)建一個(gè)到/dev/null的符號(hào)鏈接。


      11、安全補(bǔ)丁


      務(wù)必保持?jǐn)?shù)據(jù)庫(kù)為最新版本。因?yàn)楣粽呖梢岳蒙弦粋€(gè)版本的已知漏洞來訪問企業(yè)的數(shù)據(jù)庫(kù)。


      12、啟用日志


      如果你的數(shù)據(jù)庫(kù)服務(wù)器并不執(zhí)行任何查詢,建議你啟用跟蹤記錄,你可以通過在/etc/my.cnf文件的[Mysql]部分添加:log =/var/log/mylogfile。


      對(duì)于生產(chǎn)環(huán)境中任務(wù)繁重的MySQL數(shù)據(jù)庫(kù),因?yàn)檫@會(huì)引起服務(wù)器的高昂成本。


      此外,還要保證只有root和mysql可以訪問這些日志文件。


      錯(cuò)誤日志


      務(wù)必確保只有root和mysql可以訪問hostname.err日志文件。該文件存放在mysql數(shù)據(jù)歷史中。該文件包含著非常敏感的信息,如口令、地址、表名、存儲(chǔ)過程名、代碼等,它可被用于信息收集,并且在某些情況下,還可以向攻擊者提供利用數(shù)據(jù)庫(kù)漏洞的信息。攻擊者還可以知道安裝數(shù)據(jù)庫(kù)的機(jī)器或內(nèi)部的數(shù)據(jù)。


      MySQL日志


      確保只有root和mysql可以訪問logfileXY日志文件,此文件存放在mysql的歷史目錄中。


      13、改變r(jià)oot目錄


      Unix操作系統(tǒng)中的chroot可以改變當(dāng)前正在運(yùn)行的進(jìn)程及其子進(jìn)程的root目錄。重新獲得另一個(gè)目錄root權(quán)限的程序無法訪問或命名此目錄之外的文件,此目錄被稱為“chroot監(jiān)獄”。


      通過利用chroot環(huán)境,你可以限制MySQL進(jìn)程及其子進(jìn)程的寫操作,增加服務(wù)器的安全性。


      你要保證chroot環(huán)境的一個(gè)專用目錄,如/chroot/mysql。此外,為了方便利用數(shù)據(jù)庫(kù)的管理工具,你可以在MySQL配置文件的[client]部分改變下面的參數(shù):


      [client]


      socket = /chroot/mysql/tmp/mysql.sock


      14、禁用LOCAL INFILE命令


      LOAD DATA LOCAL INFILE可以從文件系統(tǒng)中讀取文件,并顯示在屏幕中或保存在數(shù)據(jù)庫(kù)中。如果攻擊者能夠從應(yīng)用程序找到SQL注入漏洞,這個(gè)命令就相當(dāng)危險(xiǎn)了。下面的命令可以從MySQL控制臺(tái)進(jìn)行操作:


      > SELECT LOAD_FILE("/etc/passwd");


      該命令列示了所有的用戶。解決此問題的最佳方法是在MySQL配置中禁用它,在CentOS中找到/etc/my.cnf或在Ubuntu中找到/etc/mysql/my.cnf,在[mysqld]部分增加下面一行:set-variable=local-infile=0。搞定。


      當(dāng)然,唇亡齒寒,保護(hù)服務(wù)器的安全對(duì)于保障MySQL數(shù)據(jù)庫(kù)的安全也是至關(guān)重要的。服務(wù)器的安全對(duì)于數(shù)據(jù)庫(kù)來說可謂生死攸關(guān)。交給多備份,還你安全可靠的數(shù)據(jù)安全保障!


      分享自www.dbfen.com 轉(zhuǎn)載請(qǐng)注明

    聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    保障MySQL數(shù)據(jù)安全的14個(gè)最佳方法

    保障MySQL數(shù)據(jù)安全的14個(gè)最佳方法:有的企業(yè)在安裝MySQL時(shí)用的是默認(rèn)選項(xiàng),由此造成其數(shù)據(jù)不安全,且服務(wù)器也面臨被入侵的風(fēng)險(xiǎn),并有可能在短時(shí)間內(nèi)就出現(xiàn)性能問題。本文將提供保障MySQL安全的最佳方法。 MySQL數(shù)據(jù)庫(kù)一貫以高性能、高可性和易用性著稱,它已經(jīng)成為世界上最流行的開源數(shù)據(jù)庫(kù)。
    推薦度:
    標(biāo)簽: 安全 企業(yè) 方法
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 精品国产91久久久久久久| 91精品国产福利在线观看麻豆 | 国产精品水嫩水嫩| 精品国产免费一区二区三区| 国产精品爽黄69天堂a| 亚洲精品美女久久777777| 精品久久久久久无码人妻热| 香蕉久久夜色精品国产小说| 国产亚洲精品无码成人| 亚洲精品乱码久久久久久不卡| 国产精品igao视频| 亚洲国语精品自产拍在线观看| A级精品国产片在线观看| 精品亚洲成a人片在线观看| 影院无码人妻精品一区二区| 久久精品无码一区二区三区免费 | 久久精品国产精品亚洲人人| 91午夜精品亚洲一区二区三区| 国产91精品一区二区麻豆网站 | 国产精品国产三级国产av品爱网 | 久久er热视频在这里精品| 91精品国产高清91久久久久久| 久久久久人妻一区精品性色av| 亚洲国产精品久久电影欧美| 亚洲国产精品专区在线观看| 下载天堂国产AV成人无码精品网站| 国产午夜亚洲精品理论片不卡| 国产精品乱伦| 国产精品日韩深夜福利久久| 国产精品无码永久免费888| 国产成人精品a视频一区| 思思99热在线观看精品| 99国产精品国产免费观看| 欧美国产亚洲精品高清不卡| 四虎国产精品免费入口| 中文精品久久久久国产网址 | 伊人精品视频在线| 日韩一区精品视频一区二区| 日韩精品区一区二区三VR| 久久国产精品99精品国产| 国产亚洲欧美精品永久|