昨天下午,北大青鳥通州校區(qū)教員楊老師在多功能廳,為同學(xué)們進(jìn)行了一次技術(shù)講座,主要是向同學(xué)們介紹一下,防止黑客入侵mysqld數(shù)據(jù)庫的三種方法:
第一:
不要把file權(quán)限給所有的用戶。有這權(quán)限的任何用戶能在擁有mysqld守護(hù)進(jìn)程權(quán)限的文件系統(tǒng)那里寫一個文件!為了使這更安全一些,用SELECT ... INTO OUTFILE生成的所有文件對每個人是可讀的,并且你不能覆蓋已經(jīng)存在的文件。file權(quán)限也可以被用來讀取任何作為運行服務(wù)器的Unix用戶可存取的文件。這可能被濫用,例如,通過使用LOAD DATA裝載"/etc/passwd"進(jìn)一個數(shù)據(jù)庫表,然后它能用SELECT被讀入。
如果你不信任你的DNS,你應(yīng)該在授權(quán)表中使用IP數(shù)字而不是主機名。原則上講,--secure選項對mysqld應(yīng)該使主機名更安全。在任何情況下,你應(yīng)該非常小心地使用包含通配符的主機名
第二:
不要作為Unix的root用戶運行MySQL守護(hù)進(jìn)程。mysqld能以任何用戶運行,你也可以創(chuàng)造一個新的Unix用戶mysql使一切更安全。如果你作為其它Unix用戶運行mysqld,你不需要改變在user表中的root用戶名,因為MySQL用戶名與Unix 用戶名沒關(guān)系。你可以作為其它Unix用戶編輯mysql.server啟動腳本mysqld。通常這用su命令完成。對于更多的細(xì)節(jié),見18.8 怎樣作為一個一般用戶運行MySQL。(北大青鳥通州校區(qū))
如果你把一個Unix root用戶口令放在mysql.server腳本中,確保這個腳本只能對root是可讀的。
檢查運行mysqld的Unix用戶是唯一的在數(shù)據(jù)庫目錄下有讀/寫權(quán)限的用戶。
第三:
不要把process權(quán)限給所有用戶。mysqladmin processlist的輸出顯示出當(dāng)前執(zhí)行的查詢正文,如果另外的用戶發(fā)出一個UPDATE user SET password=PASSWORD( ot_secure)查詢,被允許執(zhí)行那個命令的任何用戶可能看得到。mysqld為有process權(quán)限的用戶保留一個額外的連接, 以便一個MySQL root用戶能登錄并檢查,即使所有的正常連接在使用。(北大青鳥通州校區(qū))