首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 命令行用戶管理完全指南:建立、授權、修改、刪除

     編輯:MySQL 資料庫相關知識

核心概念

MySQL 安裝後自帶 mysql 系統庫,user 表存儲帳號資訊,主鍵為 (Host, User)。無圖形工具時,完全可用 SQL 管理用戶。

一、建立用戶

1. CREATE USER(僅建帳號,無權限)

CREATE USER 'app'@'192.168.1.%' IDENTIFIED BY 'StrongPass#2024';

2. GRANT(建帳號 + 授權,推薦)

-- 全庫全表最高權限,僅本地
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'Pass@123' WITH GRANT OPTION;

-- 特定庫特定表權限
GRANT SELECT, INSERT, UPDATE ON `shop`.`orders` TO 'reader'@'10.0.0.%' IDENTIFIED BY 'ReadOnly#1';

-- 欄位級權限
GRANT SELECT (`id`, `name`), UPDATE (`status`) ON `cms`.`articles` TO 'editor'@'%' IDENTIFIED BY 'Edit@2024';

關鍵字速查表

權限說明
ALL PRIVILEGES除 GRANT OPTION 外所有權限
SELECT / INSERT / UPDATE / DELETE增刪改查基礎權限
CREATE / DROP / ALTER結構變更權限
INDEX索引管理
EXECUTE執行存儲過程/函數
RELOAD / SHUTDOWN / SUPER管理員級權限
REPLICATION SLAVE / CLIENT主從同步相關
FILE讀寫服務器檔案(高風險)

資源限制選項(WITH 子句)

GRANT ... TO 'user'@'%' 
  WITH MAX_QUERIES_PER_HOUR 1000
       MAX_UPDATES_PER_HOUR 500
       MAX_CONNECTIONS_PER_HOUR 100
       MAX_USER_CONNECTIONS 10;

二、刪除用戶

DROP USER 'old_user'@'192.168.1.%';

會同步清理 tables_priv、columns_priv、procs_priv 等關聯表記錄。

三、重命名用戶

RENAME USER 'dev'@'localhost' TO 'dev'@'%';

四、修改權限(收回/新增)

收回單一權限

REVOKE UPDATE ON *.* FROM 'dev'@'localhost';

收回所有權限

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'dev'@'localhost';
FLUSH PRIVILEGES;

五、修改密碼

-- 5.7.6+ 標準語法
ALTER USER 'app'@'%' IDENTIFIED BY 'NewStrongPass#2024';

-- 兼容舊版
SET PASSWORD FOR 'app'@'%' = PASSWORD('NewStrongPass#2024');
FLUSH PRIVILEGES;

六、查看用戶與權限

-- 列出所有用戶
SELECT User, Host FROM mysql.user;

-- 查看特定用戶權限
SHOW GRANTS FOR 'app'@'%';

最佳實踐清單

  • ✅ 嚴禁使用無密碼帳號、%@%` 萬用帳號。
  • ✅ 生產環境帳號遵循最小權限原則,按應用/模組拆分。
  • ✅ 定期 FLUSH PRIVILEGES 或重啟服務使權限生效(8.0+ 多數操作自動生效)。
  • ✅ 審計:SELECT * FROM mysql.user WHERE Password = '' OR authentication_string = '';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved