怎樣使MySQL更安全? -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【clearvueentertainment.com - 電腦資料】

    當(dāng)你連接一個(gè)MySQL服務(wù)器時(shí),你通常應(yīng)該使用一個(gè)口令,

怎樣使MySQL更安全?

?诹畈灰悦魑脑谶B接上傳輸。

    所有其它信息作為能被任何人讀懂的文本被傳輸。如果你擔(dān)心這個(gè),你可使用壓縮協(xié)議(MySQL3.22和以上版本)使事情變得更難。甚至為了使一切更安全,你應(yīng)該安裝ssh(見 http://www.cs.hut.fi/ssh )。用它,你能在一個(gè)MySQL服務(wù)器與一個(gè)MySQL客戶之間得到一個(gè)加密的TCP/IP連接。

    為了使一個(gè)MySQL系統(tǒng)安全,強(qiáng)烈要求你考慮下列建議:

    對(duì)所有MySQL用戶使用口令。記住,如果other_user沒有口令,任何人能簡單地用mysql -u other_user db_name作為任何其它的人登錄。對(duì)客戶機(jī)/服務(wù)器應(yīng)用程序,客戶可以指定任何用戶名是常見的做法。在你運(yùn)行它以前,你可以通過編輯mysql_install_db腳本改變所有用戶的口令,或僅僅MySQL root的口令,象這樣:

    shell> mysql -u root mysql

    mysql> UPDATE user SET Password=PASSWORD('new_password')

    WHERE user='root';

    mysql> FLUSH PRIVILEGES;

    不要作為Unix的root用戶運(yùn)行MySQL守護(hù)進(jìn)程。mysqld能以任何用戶運(yùn)行,你也可以創(chuàng)造一個(gè)新的Unix用戶mysql使一切更安全,

電腦資料

怎樣使MySQL更安全?》(http://clearvueentertainment.com)。如果你作為其它Unix用戶運(yùn)行mysqld,你不需要改變?cè)趗ser表中的root用戶名,因?yàn)镸ySQL用戶名與Unix用戶名沒關(guān)系。你可以作為其它Unix用戶編輯mysql.server啟動(dòng)腳本mysqld。通常這用su命令完成。對(duì)于更多的細(xì)節(jié),見18.8怎樣作為一個(gè)一般用戶運(yùn)行MySQL。

    如果你把一個(gè)Unix root用戶口令放在mysql.server腳本中,確保這個(gè)腳本只能對(duì)root是可讀的。

    檢查那個(gè)運(yùn)行mysqld的Unix用戶是唯一的在數(shù)據(jù)庫目錄下有讀/寫權(quán)限的用戶。

    不要把process權(quán)限給所有用戶。mysqladmin processlist的輸出顯示出當(dāng)前執(zhí)行的查詢正文,如果另外的用戶發(fā)出一個(gè)UPDATE user SET password=PASSWORD('not_secure')查詢,被允許執(zhí)行那個(gè)命令的任何用戶可能看得到。mysqld為有process權(quán)限的用戶保留一個(gè)額外的連接,以便一個(gè)MySQL root用戶能登錄并檢查,即使所有的正常連接在使用。

    不要把file權(quán)限給所有的用戶。有這權(quán)限的任何用戶能在擁有mysqld守護(hù)進(jìn)程權(quán)限的文件系統(tǒng)那里寫一個(gè)文件!為了使這更安全一些,用SELECT ... INTO OUTFILE生成的所有文件對(duì)每個(gè)人是可讀的,并且你不能覆蓋已經(jīng)存在的文件。file權(quán)限也可以被用來讀取任何作為運(yùn)行服務(wù)器的Unix用戶可存取的文件。這可能被濫用,例如,通過使用LOAD DATA裝載“/etc/passwd”進(jìn)一個(gè)數(shù)據(jù)庫表,然后它能用SELECT被讀入。

    如果你不信任你的DNS,你應(yīng)該在授權(quán)表中使用IP數(shù)字而不是主機(jī)名。原則上講,--secure選項(xiàng)對(duì)mysqld應(yīng)該使主機(jī)名更安全。在任何情況下,你應(yīng)該非常小心地使用包含通配符的主機(jī)名!

最新文章