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

MySQL 修改密碼與訪問控制完整指南:六大方法與權限最佳實踐

     編輯:MySQL 資料庫相關知識

前言

MySQL 為多用戶、多執行緒的 SQL 伺服器,安全性需從帳號密碼、權限最小化、網路隔離多層面建構。本文彙整密碼修改六大方法與訪問控制要點。

密碼修改六大法

方法指令範例需 FLUSH PRIVILEGES適用場景
1. phpMyAdminGUI 操作 user 表視工具而定圖形化管理偏好者
2. mysqladminmysqladmin -u root -p oldpwd newpwd否命令列快速修改
3. INSERT + PASSWORD()INSERT INTO mysql.user (Host,User,Password) VALUES ('%','user',PASSWORD('pwd')); FLUSH PRIVILEGES;是建立新帳號
4. REPLACE + PASSWORD()REPLACE INTO mysql.user ... FLUSH PRIVILEGES;是覆蓋式建立/更新
5. SET PASSWORDSET PASSWORD FOR 'user'@'%' = PASSWORD('pwd');否標準 SQL 介面
6. GRANT IDENTIFIED BYGRANT USAGE ON *.* TO 'user'@'%' IDENTIFIED BY 'pwd';否同時授權與設密

關鍵提醒:MySQL 5.7+ 已棄用 PASSWORD(),改用 authentication_string 欄位與 caching_sha2_password 插件,建議直接用 ALTER USER 'user'@'%' IDENTIFIED BY 'pwd';。

訪問控制最佳實踐

  • 最小權限原則:應用帳號僅授予必要資料庫的 SELECT/INSERT/UPDATE/DELETE,禁止 DROP/GRANT/OPTION
  • 主機限制:帳號綁定具體 IP 或網段('user'@'192.168.1.%'),避免 % 通配
  • 定期審計:SELECT User, Host FROM mysql.user; 檢查殘留帳號
  • 密碼複雜度:啟用 validate_password 元件強制長度、混合字元
  • 密碼輪換:設定 default_password_lifetime 強制定期更換

常用權限管理指令

-- 查看用戶權限
SHOW GRANTS FOR 'user'@'host';

-- 授予權限
GRANT SELECT, INSERT ON db.* TO 'user'@'host';

-- 回收權限
REVOKE INSERT ON db.* FROM 'user'@'host';

-- 刪除用戶
DROP USER 'user'@'host';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved