Mysql數(shù)據(jù)庫(kù)應(yīng)該怎樣防破解?

MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),也是一種非常容易管理的數(shù)據(jù)庫(kù)。對(duì)于Mysql數(shù)據(jù)庫(kù),應(yīng)當(dāng)怎樣防止破解呢?我們首先要知道當(dāng)你連接一個(gè)mysql服務(wù)器時(shí),你通常應(yīng)該使用一個(gè)口令??诹畈灰悦魑脑谶B接上傳輸。所有其它信息作為能被任何人讀懂的文本被傳輸。

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

Mysql數(shù)據(jù)庫(kù)應(yīng)該怎樣防破解?

不要作為unix的root用戶運(yùn)行mysql守護(hù)進(jìn)程。mysqld能以任何用戶運(yùn)行,你也可以創(chuàng)造一個(gè)新的unix用戶mysql使一切更安全。如果你作為其它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ù)庫(kù)目錄下有讀/寫權(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)限給所有的用戶。