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

MySQL 用戶權限管理速查:建用戶、授權、改密、刷新四步走

     編輯:MySQL 綜合教學

核心操作速查表

場景SQL 命令說明
修改 root 密碼SET PASSWORD FOR 'root'@'%' = PASSWORD('newpass');% 表示任意主機,生產建議限定具體 IP
建立用戶CREATE USER 'tom'@'%' IDENTIFIED BY 'Abcd1234';MySQL 5.7+ 建議用 caching_sha2_password 插件
授權(全庫全表)GRANT ALL PRIVILEGES ON data_analysis.* TO 'tom'@'%' IDENTIFIED BY 'Abcd1234';生產環境按最小權限原則授權具體庫/表/列
授權(唯讀)GRANT SELECT ON data_analysis.* TO 'readonly'@'%';報表/分析賬號常用
刷新權限FLUSH PRIVILEGES;修改 grant 表後必須執行,動態授權 (GRANT) 通常自動生效
查看權限SHOW GRANTS FOR 'tom'@'%';審計用
回收權限REVOKE ALL PRIVILEGES ON data_analysis.* FROM 'tom'@'%';配合 DROP USER 刪除賬號

最佳實踐原則

  1. 最小權限: 業務賬號僅授予必要庫/表的 SELECT/INSERT/UPDATE/DELETE,禁用 DROP/ALTER/SHUTDOWN 等危險權限。
  2. 主機限制: 避免 'user'@'%',改為 'user'@'10.0.1.%' 或具體 IP。
  3. 密碼複雜度: 啟用 validate_password 插件,強制長度、大小寫、特殊字符。
  4. 定期審計: 腳本巡檢 mysql.user、mysql.db、mysql.tables_priv,清理僵屍賬號。
  5. MySQL 8.0 新特性: 支援 CREATE USER ... REQUIRE SSL、PASSWORD EXPIRE INTERVAL 90 DAY、ACCOUNT LOCK/UNLOCK 等更精細的帳號生命週期管理。

常見錯誤與排查

  • ERROR 1045 (28000): Access denied → 確認 Host 欄位匹配、密碼正確、FLUSH PRIVILEGES 已執行。
  • ERROR 1410 (HY000): You are not allowed to create a user with GRANT → MySQL 5.7+ 必須先 CREATE USER 再 GRANT,不再支援隱式建用戶。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved