1. 程式人生 > >MySQL的訪問控制與使用者管理

MySQL的訪問控制與使用者管理

  MySQL伺服器的安全基礎是使用者應該對他們需要的資料具有適當的訪問權,既不能多也不能少。管理訪問控制需要建立和管理使用者賬號。

  使用MySQL Administrator,MySQL Administrator提供了一個圖形使用者介面,可以用來管理使用者及賬號許可權。

  防止無意的錯誤,訪問控制的目的不僅僅是防止使用者的惡意企圖。資料夢魘更為常見的是無意識的錯誤的結果,如打錯MySQL語句,在不合適的資料庫中操作或其它一些使用者錯誤。通過保證使用者不能執行它們不應該執行的語句,訪問控制有助於避免這些情況的發生。

  不要使用root,應該嚴肅對待root登入的使用。盡在絕對需要的時候使用它(或許在你不能登入其它管理賬號時使用)。不應該在日常的操作中使用root。

  MySQL使用者賬號和資訊儲存在名為mysql的MySQL的資料庫中。一般不需要直接訪問mysql資料庫和表,但有時需要直接訪問。需要訪問的時機是在需要獲得所有使用者賬號列表時。為此,可以用以下程式碼:

USE mysql;
SELECT user FROM user;

  mysql資料庫有一個名為user的表,它包含所有使用者賬號。user表中有一個名為user的列,它儲存登入使用者名稱。新安裝的伺服器可能只有一個使用者。

  建立使用者賬號

  為了建立一個新使用者賬號,使用CREATE USER語句,如下所示:

CREATET USER ben IDENTIFIED BY '
[email protected]
$$w0rd';

  CREATE USER建立了一個新使用者賬號。在建立使用者賬號時不一定需要口令,不過這個例子用IDENTIFIED BY '[email protected]$$w0rd' 給出了一個口令。

  指定雜湊口令:IDENTIFIED BY 指定的誒純文字,MySQL將在儲存到user表之前對其進行加密,為了作為雜湊值指定口令,使用IDETIFIED BY PASSWORD。

  使用GRANT和INSERT

  使用GRANT也可以用來建立使用者賬號,但一般來說,CREATET USER是最清楚和最簡答的句子。此外,也可以通過直接插入行到user表來增加使用者,不過為了安全起見,一般不建議這麼做。MySQL用來儲存使用者賬號資訊的表(以及表模式等)極為重要,對它們的任何毀壞都可能嚴重傷害到MySQL伺服器。因此,相對於直接處理來說,最好是用標記和函式來處理這些表。