關於加強MYSQL安全的幾點建議

else發表於2021-09-09

通常我們在連線MySQL的伺服器時,要使用到口令。這個口令在網路上傳輸的時候是加過密的。可是其它的內容都是以明文的方式來進行傳輸的。

當然如果擔心這個不安全的話,可以使用壓縮協議(MySQL3.22和以上版本),這樣可以讓其它的內容不那麼容易就被看到。甚至為了讓它更加安全,可以考慮下安裝ssh。裝上它之後,你就能在MySQL伺服器與MySQL客戶之間,搭建一條加密的TCP/IP連線。
為了使你的MySQL系統更安全,強烈建議考慮以下建議:


1.為每個MySQL使用者使用口令。如果你不加設口令的話,其他人可以透過mysql --user other_user database的方式訪問你的資料庫,在使用MySQL進行檢測的時候系統也會給你相應的警告資訊。


2.透過mysql_install_db指令碼建立mySQL的授權表,你可以透過mysql -u root進行測試,正確的情況下應該不會發生錯誤。更改root的密碼:
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD( ew_password)
WHERE user= root;
mysql> FLUSH PRIVILEGES;


3.不要用root方式啟動MySQL服務。MySQL可以以任何使用者啟動。你可以透過新增一個新使用者的方式來啟動資料庫服務(也就是mysql低許可權執行)。這也不會對系統造成任何影響,因為MySQL的使用者和Unix的使用者根本來說就使不同的。


4.如果你把Unix root使用者口令放在了mysql.server指令碼中,那麼必須確保這個指令碼只對root是可讀的。檢查那個執行mysqld的使用者,確保這個使用者是唯一在資料庫目錄下有讀/寫許可權的使用者。


5.不要把process許可權給任何人。mysqladmin processlist的輸出會顯示出當前正在執行的查詢正文,這時如果有另外的使用者發出一個UPDATE user SET password=PASSWORD( ot_secure)查詢,則會被有process許可權的使用者看得到查詢。mysqld為有process許可權的使用者保留一個額外的連線, 以便一個MySQL root使用者能登入並檢查,即使所有的正常連線在使用。


6.不要把file許可權給所有的使用者。有這許可權的使用者能在擁有mysqld守護程式許可權的檔案系統那裡寫一個檔案! file許可權也可以被用來讀取任何作為執行伺服器的Unix使用者可存取的檔案。這可能被利用,例如,透過使用LOAD DATA裝載"/etc/passwd"進一個資料庫表,然後它能用SELECT被讀入。


7. 如果你不信任你的DNS,你應當使用IP來取代主機名。在任何情況下,你應該非常小心地使用包含萬用字元的主機名!
相信透過以上的設定過後,你的Mysql主機應該已經相對比較安全,不是那麼輕鬆就會讓人攻陷的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2318/viewspace-2811136/,如需轉載,請註明出處,否則將追究法律責任。

相關文章