在 MySQL 資料庫管理中,用戶帳號與權限控制是基礎且關鍵的環節。本文系統整理了建立用戶、授予權限、刷新權限、刪除用戶以及修改密碼的核心操作指令,幫助您快速掌握 MySQL 權限體系的實戰技巧。
透過直接操作 mysql.user 系統表可快速建立用戶:
INSERT INTO mysql.user (Host, User, Password)
VALUES ('localhost', 'test', PASSWORD('1234'));
上述指令建立了一個用戶名為 test、密碼為 1234 的帳號,預設僅允許本地登入。若需開放遠端連線,可將 Host 值修改為 %(允許任意 IP)或指定特定 IP 地址:
%:允許所有主機連線192.168.1.100:僅允許特定 IP 連線使用 GRANT 指令為用戶分配資料庫操作權限:
GRANT ALL PRIVILEGES ON testDB.* TO 'test'@'localhost' IDENTIFIED BY '1234';
此指令授予 test 用戶在本地登入時,對 testDB 資料庫所有資料表的完整操作權限。權限粒度可彈性調整:
ALL PRIVILEGES 替換為 SELECT、INSERT、UPDATE、DELETE 或其組合testDB.* 改為 testDB.info 限定特定資料表@'localhost' 改為 @'%' 允許遠端存取權限變更後必須執行 FLUSH PRIVILEGES; 使其立即生效,否則修改僅停留在記憶體中,重啟服務後才會載入。
提供兩種刪除方式,視需求選擇:
-- 僅刪除用戶記錄
DELETE FROM mysql.user WHERE User='test' AND Host='localhost';
-- 徹底移除用戶及其權限(推薦)
DROP USER 'test'@'%';
DROP USER 會同步清理權限表,較為乾淨安全。
UPDATE mysql.user SET Password=PASSWORD('新密碼')
WHERE User='test' AND Host='localhost';
FLUSH PRIVILEGES;
注意:MySQL 5.7+ 版本中 Password 欄位已改為 authentication_string,實際操作時請根據版本調整欄位名稱。
root 遠端登入,建立專用應用帳號