程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 新的MySQL安裝的安全性

新的MySQL安裝的安全性

編輯:關於MYSQL數據庫

    本章將討論MySQL管理員為保持MySQL正常運行所需要完成的職責。這些職責包括確保服務器盡可能保持高性能地運行、設置用戶賬號以便客戶機能夠訪問服務器、維護日志文件,以及執行數據庫備份。為了得到更高的性能,管理員還可以運行多個服務器或修改服務器的操作參數。最後,由於MySQL正處於高速發展的狀態,所以管理員必須能確定何對MySQL進行升級。其他重要的管理問題將在第12章“安全性”和第13章“數據庫維護和修復”介紹。

    有幾個對MySQL管理員有用的程序包括在這些章節中:

    MySQLadmin 執行各種各樣的管理操作。

    safe_mysqld 和mysql.server 是啟動MySQL服務器MySQLd 的腳本。

    MySQLdump 用於數據庫備份和拷貝操作。

    myisamchk 和isamchk 用於表的完整性檢查和修復操作。

    有關這些程序的附加信息,請參閱附錄E“MySQL程序參考”。

    您可能因為剛剛按照附錄A “獲得和安裝軟件”一節的說明安裝了MySQL而正在閱讀本章。如果是這樣的話,則需要為MySQLroot 用戶設置口令─對於一個新的MySQL安裝來說,服務器正在以不安全的權限運行著。筆者假定您已經初始化了數據目錄和包含授權表的mysql數據庫。在UNIX 中,可通過運行mysql_install_db 腳本來進行。在Windows 中,數據目錄和MySQL數據庫通過運行服務器分發包中的Setup 程序初始化。筆者還假定服務器正在運行中。

    當初次在機器上安裝MySQL時,MySQL數據庫的授權表的初始權限如下:

    可以從本地主機中以root 進行連接,不帶任何口令。root 用戶擁有所有的權限(其中包括管理權限),因此能做許多事情(順便說一句, MySQL超級用戶和UNIX 超級用戶二者都有名字root ,這一事實是巧合的。它們相互之間沒有任何關系)

    匿名的訪問授予從本地主機上連接的用戶,該主機擁有名為test 的數據庫或帶有以‘t e s t _’開始的任何數據庫。匿名用戶可以利用這樣的數據庫做任何事,但沒有管理權限。

    無論連接的用戶指定的是localhost 主機名還是實際的主機名,從本地主機到服務器的連接都將是允許的。例如,如果服務器在pit - viper.snake.Net 上,則該主機上的客戶機能夠不使用口令而連接到該服務器,從而可利用下列之一的語句使用test 數據庫:

    % MySQL-h localhost test
    % MySQL-h pit-viper.snake.Net test

    您甚至可以不用口令就以root 用戶的身份連接到MySQL,這一事實說明:初始的安裝是不安全的。因此,作為MySQL管理員最初的行動之一應該是為root 用戶設置口令。然後,根據用來設置口令的方法,您還需要指示服務器重新加載授權的表,使服務器知道這些變化(在服務器啟動時,它將這些表加載到內存中,並且在沒有意識到的情況下已經將它們改變。如果是這樣的話,必須明確告訴它重新讀取這些表)。

    對於MySQL3.22 以上的版本,可以用MySQLa d m i n 程序按如下方式設置口令,可用您選擇的口令來替代下列命令中的“ your passWord”:

    % MySQLadmin -uroot password "your passWord"

    對於任何版本的MySQL,您都可以使用mysql程序並直接更新MySQL數據庫中的用戶授權的表:

    % mysql-uroot mysql    MySQL>UPDATE user SET Password=PASSWORD("your passWord")

         -> WHREE User="root";

    如果您有一個舊版本的MySQL,則可使用MySQL和一個UPDATE語句,這也包括Windows 的共享軟件版本。

    在設置口令後,要看看是否需要通過運行下列命令指示服務器重新加載授權的表:

    % MySQLadmin -uroot status

    如果服務器仍然允許不使用口令就以root 用戶身份進行連接,則應告訴它重新讀取授權的表( MySQL3.22 以上的版本還允許用MySQLadmin flush.privileges 命令和F L U S H PRIVILEGES 的SQL 語句重新加載表):

    % MySQLadmin -uroot reload

    在設置了root 的口令(並重新加載授權的表,如果必要的話)後,當以root 的身份連接到服務器時,需要指定新的口令。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved