對於一個剛安裝好的 mysql,其安全性是很差的,因為任何使用 mysql 的用戶都能使用和更改數據庫的資料,因此需要為 mysql 的 root 用戶設置口令(mysql 的 root 與 Linux 的 root 是兩回事,它們之間沒有任何關系).
為 root 設置口令需要用到 mysqladmin 這個命令,因為我安裝的 mysql 在 /usr/local 下,因此,我到目錄 /usr/local/bin 下運行這個命令:
#./mysqladmin -u root passWord "passwd"
"passwd" 是我為 root 設置的口令明文;
好了,我在 root 用戶下運行 mysql:
#mysql
被拒絕了,再用下面的命令運行 mysql:
#mysql -uroot -p
出現:Enter password:
我輸入密碼後,成功登入了,因此不必再擔心有其他用戶隨意使用數據庫了,接著又出現問題了,root 權限在 mysql 裡有控制一切的權利,當有用戶請求使用數據庫時,把 root 的密碼告訴用戶也是很危險的,所以我考慮在數據庫再設置其他的用戶帳號,並將適當的權限開放給他.
創建新用戶和授權,需要用到下面這個語法:
grant privileges on what to user identified by "passwd" with grant option
privileges 分配權限
what 權限的應用級別
user 用戶
passwd 密碼明文
with grant option 使用這個子句時將允許用戶將其權限分配給他人.
我准備創建 team 的用戶,並只允許他使用 team 數據庫的權限,所以我使用了以下的名令:
#mysql -uroot -ppasswd
先運行 mysql
>grant all on team.* to team@localhost identified by "team";
在這我給了 team 用戶控制 team 數據庫的所有權限,並且不允許他分配權限給其它人.
這樣當用戶請求使用數據庫時,我只需將 team 用戶的密碼交給他就行了.
另外在 web 頁控制 mysql 數據庫的工具 PHPMyAdmin 是個非常強大而又危險的工具,為了數據庫的安全,最好在使用這個工具時,讓用戶通過認證以策安全,我會在介紹 apache 服務器配置時介紹如何設置認證.