使用root使用者執行MYSQL的安全隱患

2021-05-22 00:22:34 字數 1487 閱讀 6748

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

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

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

1:對所有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;

2:不要作為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使用者是唯一的在資料庫目錄下有讀/寫許可權的使用者。

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

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

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

如何使用root使用者執行J版Ceph

os版本 centos 7 ceph版本 10.2.3 一直在使用ceph的h版本,最近切換到了j版,在部署完j版ceph後啟動osd竟然報失敗,部署過n n次ceph集群怎麼能容忍部署失敗呢!遂慢慢尋找問題。尋找問題的過程不表,最後原因確定為集群使用了一些ssd做了journal,但是這些ssd的...

MySQL的root使用者

mysql的root使用者 摘要 mysql的root使用者十分重要,它全面控制mysql的執行與設定,本文主要介紹mysql中root的遠端登入設定以及密碼的設定和修改。關鍵字 mysql root 目錄 一 mysql遠端登入設定 二 mysql中root使用者 主要內容 一 mysql遠端登入...

Mysql忘記root使用者

修改口令必須要連線伺服器才能修改口令,如果不知道root口令,就只能先強行關停伺服器,然後在不適用許可權表驗證的請款下重新啟動伺服器。一 關停伺服器 如果是在linux系統下 以系統的root使用者登陸,進入終端 殺掉mysql程序 方法1 killall mysqld 方法2 ps aux 檢視所...