1. 在 MySQL 中建立使用者的理由
MySQL 使用者管理的重要性
MySQL 是許多企業與個人專案常用的資料庫管理系統,而使用者管理對於維護其安全性與效率性不可或缺。舉例來說,在大型應用程式中,往往需要多位開發者或管理者存取資料庫。此時,為每位使用者分配不同的權限,限制適當的資料存取與操作,便顯得至關重要。
透過賦予特定的權限,可以減少因不必要操作導致的資料遺失與安全風險。同時,對各使用者進行妥善的密碼管理,也能防止外部的非法存取。如此一來,不僅能提升資料的安全性,也能改善系統效能。
2. 在 MySQL 中建立使用者的步驟
基本的使用者建立指令
在 MySQL 中建立使用者,需要使用 CREATE USER
指令。以下範例可用來建立新使用者:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
'username'
:欲建立的新使用者名稱。'localhost'
:該使用者可存取的位置(若為 localhost,則限制只能在同一伺服器存取)。'password'
:分配給使用者的密碼。
例如,預設情況下使用者僅能從本機(localhost)存取資料庫,但若要允許其他 IP 位址的存取,只需將 localhost
改為指定的 IP 位址即可。
建立使用者時的選項
MySQL 在建立使用者時,也能設定額外選項。例如,可指定特定的驗證外掛:
CREATE USER 'username'@'localhost' IDENTIFIED WITH 'auth_plugin' BY 'password';
auth_plugin
用於指定 MySQL 的驗證方式(例如 caching_sha2_password
)。這能進一步強化密碼的安全性。

3. 賦予使用者權限
權限概要與必要性
在 MySQL 中新建的使用者,預設情況下沒有任何操作權限。若要授予權限,需使用 GRANT
指令。例如,若要授予使用者所有權限,可使用以下指令:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
此指令會允許指定使用者在 database_name
底下的所有資料表進行所有操作。但授予完整權限會增加安全風險,因此建議只開放必要的操作。
授予特定權限的方法
在 MySQL 中,可以只授予特定權限,例如:
- SELECT 權限(讀取資料)
GRANT SELECT ON database_name.* TO 'username'@'localhost';
- INSERT 權限(插入資料)
GRANT INSERT ON database_name.* TO 'username'@'localhost';
- UPDATE 權限(更新資料)
GRANT UPDATE ON database_name.* TO 'username'@'localhost';
這些權限可針對整個資料庫,或特定資料表設定。例如,僅針對單一資料表授予存取權限:
GRANT SELECT ON database_name.table_name TO 'username'@'localhost';
4. 確認與管理使用者權限
查看使用者的權限
要查看使用者目前的權限,可使用 SHOW GRANTS
指令,例如:
SHOW GRANTS FOR 'username'@'localhost';
該指令會列出該使用者目前被授予的所有權限,方便檢查與調整。
撤銷權限(REVOKE 指令)
若需刪除不必要的權限,可使用 REVOKE
指令。例如,撤銷 SELECT
權限:
REVOKE SELECT ON database_name.* FROM 'username'@'localhost';
撤銷後,務必再使用 SHOW GRANTS
確認變更已生效。

5. MySQL 使用者管理最佳實務
最小權限原則
資料庫管理的基本原則之一,就是僅賦予使用者「必要最低限度」的權限。這樣能避免誤操作與非法存取造成的資料損失。例如,僅需讀取資料的使用者,只應授予 SELECT
權限。
加強密碼策略
MySQL 使用者密碼應定期更換,並制定強化的密碼政策。可使用 ALTER USER
指令進行密碼修改與有效期限設定:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
若要設定密碼有效期限,例如每 90 天必須更新一次:
ALTER USER 'username'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
定期檢視權限
使用者權限應定期檢視,並刪除不再需要的權限,以確保系統安全。可利用 SHOW GRANTS
定期檢查,確保僅保留必要的權限。
6. 總結
在 MySQL 中進行使用者管理,是維護系統安全與效能的關鍵。透過 CREATE USER
建立新使用者,並以 GRANT
授予合適的權限,可讓資料庫在安全且高效的狀態下運行。同時,遵循最小權限原則與強化密碼政策,能降低外部攻擊與誤操作的風險。
定期檢視與調整使用者權限,是確保資料庫長期穩定、安全運作的最佳方法。