怎樣使MySQL安全以對抗解密高手

2021-03-31 19:36:24 字數 1468 閱讀 6889

當你連線乙個mysql伺服器時,你通常應該使用乙個口令。口令不以明文在連線上傳輸。

所有其它資訊作為能被任何人讀懂的文字被傳輸。如果你擔心這個,你可使用壓縮協議(mysql3.22和以上版本)使事情變得更難。甚至為了使一切更安全,你應該安裝ssh(見http://.cs.hut.fi/ssh)。用它,你能在乙個mysql伺服器與乙個mysql客戶之間得到乙個加密的tcp/ip連線。

為了使乙個mysql系統安全,強烈要求你考慮下列建議:

對所有mysql使用者使用口令。記住,如果other_user沒有口令,任何人能簡單地用mysql -u other_user db_name作為任何其它的人登入。對客戶機/伺服器應用程式,客戶可以指定任何使用者名稱是常見的做法。在你執行它以前,你可以通過編輯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使用者執行mysql守護程序。mysqld能以任何使用者執行,你也可以創造乙個新的unix使用者mysql使一切更安全。如果你作為其它unix使用者執行mysqld,你不需要改變在user表中的root使用者名稱,因為mysql使用者名稱與unix 使用者名稱沒關係。你可以作為其它unix使用者編輯mysql.server啟動指令碼mysqld。通常這用su命令完成。對於更多的細節,見18.8 怎樣作為乙個一般使用者執行mysql。

如果你把乙個unix root使用者口令放在mysql.server指令碼中,確保這個指令碼只能對root是可讀的。

檢查那個執行mysqld的unix使用者是唯一的在資料庫目錄下有讀/寫許可權的使用者。

不要把process許可權給所有使用者。mysqladmin processlist的輸出顯示出當前執行的查詢正文,如果另外的使用者發出乙個update user set password=password('not_secure')查詢,被允許執行那個命令的任何使用者可能看得到。mysqld為有process許可權的使用者保留乙個額外的連線, 以便乙個mysql root使用者能登入並檢查,即使所有的正常連線在使用。

不要把file許可權給所有的使用者。有這許可權的任何使用者能在擁有mysqld守護程序許可權的檔案系統那裡寫乙個檔案!為了使這更安全一些,用select ... into outfile生成的所有檔案對每個人是可讀的,並且你不能覆蓋已經存在的檔案。file許可權也可以被用來讀取任何作為執行伺服器的unix使用者可訪問的檔案。這可能被濫用,例如,通過使用load data裝載「/etc/passwd」進乙個資料庫表,然後它能用select被讀入。

如果你不信任你的dns,你應該在授權表中使用ip數字而不是主機名。原則上講,--secure選項對mysqld應該使主機名更安全。在任何情況下,你應該非常小心地使用包含萬用字元的主機名

怎樣使MySQL安全以對抗解密高手

當你連線乙個mysql伺服器時,你通常應該使用乙個口令。口令不以明文在連線上傳輸。所有其它資訊作為能被任何人讀懂的文字被傳輸。如果你擔心這個,你可使用壓縮協議 mysql3.22和以上版本 使事情變得更難。甚至為了使一切更安全,你應該安裝ssh 見 用它,你能在乙個mysql伺服器與乙個mysql客...

MySQL 如何對抗解密高手

所有其它資訊作為能被任何人讀懂的文字被傳輸。如果你擔心這個,你可使用壓縮協議 mysql3.22和以上版本 使事情變得更難。甚至為了使一切更安全,你應該安裝ssh。用它,你能在乙個mysql伺服器與乙個mysql客戶之間得到乙個加密的tcp ip連線。為了使乙個mysql系統安全,強烈要求你考慮下列...

MySQL資料庫應該如何對抗解密高手

當你連線乙個mysql伺服器時,你通常應該使用乙個口令。口令不以明文在連線上傳輸。所有其它資訊作為能被任何人讀懂的文字被傳輸。如果你擔心這個,你可使用壓縮協議 mysql3.22和以上版本 使事情變得更難。甚至為了使一切更安全,你應該安裝ssh。用它,你能在乙個mysql伺服器與乙個mysql客戶之...