首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 用戶創建、授權與刪除完整指南

     編輯:MySQL 綜合教學

MySQL 用戶創建、授權與刪除完整指南

MySQL 權限體系基於「用戶@主機」粒度,結合全局/庫/表/列/存儲過程/代理等多層級權限。本文匯總兩種創建用戶姿勢、精細授權模板、刪除清理與遠程連接驗證。

一、創建用戶:兩種姿勢

姿勢 1:GRANT 一站式創建 + 授權(推薦)

-- 全庫全表所有權限,任意主機訪問
GRANT ALL PRIVILEGES ON *.* TO 'yushan'@'%' IDENTIFIED BY '123';

-- 僅指定庫、指定權限、指定主機
GRANT SELECT, INSERT, UPDATE ON `mydb`.* TO 'app_user'@'192.168.1.%' IDENTIFIED BY 'strong_pwd';

-- 刷新生效
FLUSH PRIVILEGES;
  • ALL PRIVILEGES ≠ GRANT OPTION(授權權限需顯式給予)。
  • IDENTIFIED BY 5.7+ 已棄用,建議分離:CREATE USER ... IDENTIFIED BY ...; GRANT ...;

姿勢 2:直接操作 mysql.user 表(不推薦,易遺漏權限列)

INSERT INTO mysql.user (Host, User, authentication_string)
VALUES ('localhost', 'yusuhan', PASSWORD('123'));
FLUSH PRIVILEGES;

-- 後續必須補全權限列或用 GRANT 補授權
GRANT ALL ON *.* TO 'yusuhan'@'localhost';
FLUSH PRIVILEGES;

風險:mysql.user 表含 40+ 權限列(Select_priv, Insert_priv...),手動插入極易漏配,導致用戶「有賬無權」。

二、遠程連接驗證

mysql -u yushan -p -h 192.168.59.123
# -h 指定服務端 IP,若用戶 Host='%' 或匹配該 IP 則可連接

三、刪除用戶

DROP USER 'yushan'@'%';  -- 5.7+ 推薦語法,自動清理所有權限表記錄
-- 或舊版兼容
DELETE FROM mysql.user WHERE User='yushan' AND Host='%';
FLUSH PRIVILEGES;

四、權限粒度速查表

層級語法示例典型權限
全局GRANT ... ON *.*SUPER, RELOAD, SHUTDOWN, PROCESS, FILE, REPLICATION SLAVE/CLIENT, CREATE USER
庫級GRANT ... ON db.*CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER
表級GRANT ... ON db.tableSELECT, INSERT, UPDATE, DELETE, REFERENCES
列級GRANT SELECT (col1,col2) ON db.table敏感字段隔離(如薪資、身份證)
存儲過程/函數GRANT EXECUTE ON PROCEDURE db.proc TO userEXECUTE, ALTER ROUTINE, GRANT OPTION
代理用戶GRANT PROXY ON 'proxy_user'@'%' TO 'real_user'@'%'PROXY

五、最佳實踐原則

  1. 最小權限原則:業務賬號僅給 SELECT/INSERT/UPDATE/DELETE,禁止 DROP/ALTER/TRUNCATE;DDL 由專用運維賬號執行。
  2. 主機白名單:避免 Host='%',限定應用服務器 IP 段('10.0.1.%')。
  3. 強密碼策略:啟用 validate_password 插件,強制長度、複雜度、過期輪換。
  4. 讀寫分離賬號:只讀賬號 GRANT SELECT ON *.* TO 'readonly'@'%' ...,從庫專用。
  5. 定期審計:SELECT User, Host FROM mysql.user; 掃描無用/過期/過度授權賬號。

權限管理是數據庫安全第一道防線。建議將用戶全生命周期(申請、創建、授權、審計、回收)納入 CMDB/工單系統,實現留痕可追溯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved