mysql賬戶安全 使初始MySQL賬戶安全

2021-10-17 22:32:54 字數 3534 閱讀 9516

mysql安裝過程包括設定含有授權表的mysql資料庫:

·windows分發版包含預初始化的授權表,可以自動安裝。

·在unix中,用mysql_install_db程式來安裝 授權表。可以通過一些安裝方法來執行該程式。否則你需要手動執行。

授權表定義了初始mysql使用者賬戶和訪問許可權。按照以下步驟對這些賬戶進行設定:

·用使用者root建立兩個賬戶。這些賬戶為超使用者賬戶,可以執行任何操作。初始root賬戶的密碼為空,因此任何人可以用root賬戶不用任何密碼來連線mysql伺服器,並具有所有許可權。

o在windows中,乙個root賬戶用來從本機連線mysql伺服器,另乙個允許從任何主機連線。

o在unix中,兩個root賬戶均用於從本機連線。必須從本機進行連線,乙個賬戶主機名應指定為localhost,另乙個賬戶為實際的主機名或ip號。

·建立了兩個匿名使用者賬戶,每個賬戶的使用者名稱均為空。匿名賬戶沒有密碼,因此任何人可以使用匿名賬戶來連線mysql伺服器。

o在windows中,乙個匿名賬戶用來從本機進行連線。它具有所有許可權,同root賬戶一樣。另乙個可以從任何主機上連線,具有test資料庫或其它以test開始的資料庫的所有許可權。

o在unix中,兩個匿名賬戶均用於從本機連線。必須從本機進行連線,乙個賬戶主機名應指定為localhost,另乙個賬戶為實際的主機名或ip號。兩個賬戶具有test資料庫或其它以test開始的資料庫的所有許可權。

如前面所述,所有初始賬戶均沒有密碼。這意味著在你執行下述操作前,mysql安裝未受保護:

·如果你想要防止客戶端不使用密碼用匿名使用者來連線,你應當為匿名賬戶指定密碼或刪掉匿名賬戶。

·你應當為mysqlroot賬戶指定密碼。

下面的說明描述了如何為初始mysql賬戶設定密碼,先為匿名賬戶設定然後為root賬戶設定。在例子中用實際密碼替換「newpwd」。說明還包括如果你不想用匿名賬戶訪問,如何刪掉匿名賬戶。

你可能想要在以後設定密碼,因此不需要在進一步的設定或測試中指定密碼。但是,一定要在實際生產作業、使用安裝前設定好密碼。

要想為匿名賬戶指定密碼,可以使用set password或update。在兩種情況中,一定要使用password()函式為密碼加密。

在windows中使用password的方法:shell>mysql -u rootmysql>set password for ''@'localhost' = password('newpwd');mysql>set password for ''@'%' = password('newpwd');

在unix中使用password的方法:shell>mysql -u rootmysql>set password for ''@'localhost' = password('newpwd');mysql>set password for ''@'host_name' = password('newpwd');

用伺服器主機名替換第二個set password語句中的host_name。這是指定的user表中的rootnon-localhost記錄的host列名。如果你不知道是哪個主機名,在set password之前執行下面的語句:mysql>select host, user from mysql.user;

查詢在user列有root和在host列沒有localhost的記錄。然後在第二個set password語句中使用該host值。

為匿名賬戶指定密碼的另一種方法是使用update直接修改使用者表。用root連線伺服器,執行update語句為相應user表記錄的password列指定乙個值。在windows和unix中的過程是相同的。下面的update語句同時為兩個匿名賬戶指定密碼:shell>mysql -u rootmysql>update mysql.user set password = password('newpwd')->where user = '';mysql>flush privileges;

在user表中直接使用update更新密碼後,必須讓伺服器用flush privileges重新讀授權表。否則,重新啟動伺服器前,不會使用更改。

如果你寧願刪除匿名賬戶,操作方法是:shell>mysql -u rootmysql>delete from mysql.user where user = '';mysql>flush privileges;

可以在windows和unix中使用delete語句。在windows中,如果你只想刪掉具有與root相同許可權的匿名賬戶,方法為:shell>mysql -u rootmysql>delete from mysql.user where host='localhost' and user='';mysql>flush privileges;

該賬戶允許匿名訪問,但是擁有全部的許可權,因此刪掉它可以提高安全。

你可以用幾種方法為root賬戶指定密碼。以下介紹了三種方法:

·使用set password語句

·使用mysqladmin命令列客戶端程式

·使用update語句

要想使用set password指定密碼,用root連線伺服器並執行兩個set password語句。一定要使用password()函式來加密密碼。

在windows中的語句:shell>mysql -u rootmysql>set password for 'root'@'localhost' = password('newpwd');mysql>set password for 'root'@'%' = password('newpwd');

在unix中的語句:shell>mysql -u rootmysql>set password for 'root'@'localhost' = password('newpwd');mysql>set password for 'root'@'host_name' = password('newpwd');

用伺服器主機名替換第二個set password語句中的host_name。這是你指定匿名賬戶密碼的主機名。

要想使用mysqladmin為root賬戶指定密碼,執行下面的命令:shell> mysqladmin -u root password "newpwd"shell> mysqladmin -u root -hhost_namepassword "newpwd"

上述命令適用於windows和unix。用伺服器主機名替換第二個命令中的host_name。不一定需要將密碼用雙引號引起來,但是你如果密碼中包含空格或專用於命令解釋的其它字元,則需要用雙引號引起來。

你還可以使用update直接修改user表。下面的update語句可以同時為兩個root賬戶指定密碼:shell>mysql -u rootmysql>update mysql.user set password = password('newpwd')->where user = 'root';mysql>flush privileges;

update語句適用於windows和unix。

設定完密碼後,當你連線伺服器時你必須提供相應密碼。例如,如果你想要用mysqladmin關閉伺服器,可以使用下面的命令:shell>mysqladmin -u root -p shutdownenter password:(enter root password here)

注釋:如果你設定了root密碼後忘記了密碼,從a.4.1節,「如何復位根使用者密碼」中查閱重設密碼的方法。

支援Mysql 使MySQL安裝更安全

你自己安裝了乙個新的mysql伺服器後,你需要為mysql的root使用者指定乙個目錄 預設無口令 否則如果你忘記這點,你將你的mysql處於極不安全的狀態 至少在一段時間內 在unix linux 上,在按照手冊的指令安裝好mysql後,你必須執行mysql install db指令碼建立包含授權...

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

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

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

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