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

MySQL 密碼修改六大方法與訪問限制設置:GRANT、INSERT/UPDATE、SET PASSWORD、mysqladmin 詳解

     編輯:MySQL 資料庫相關知識

MySQL 修改密碼有多種等價路徑,本文梳理六大方法優劣,並說明訪問限制(GRANT 權限矩阵、db 表庫級控制)的精細配置。

一、修改密碼六大方法

方法命令/SQL特點需 FLUSH PRIVILEGES
1. phpMyAdmin / GUI圖形界面操作 mysql.user 表直觀、適合新手否(工具自動執行)
2. mysqladminmysqladmin -u root -p'old' password 'new'命令行快捷、腳本友好否
3. INSERT INTO userINSERT INTO mysql.user (Host,User,Password) VALUES ('%','app',PASSWORD('pass'));本質是創建用戶,兼容極舊版本是
4. REPLACE INTO userREPLACE INTO mysql.user (Host,User,Password) VALUES ('%','app',PASSWORD('pass'));存在則更新、不存在則插入是
5. SET PASSWORDSET PASSWORD FOR 'app'@'%' = PASSWORD('pass');專用語法、無需 FLUSH否
6. GRANT ... IDENTIFIED BYGRANT USAGE ON *.* TO 'app'@'%' IDENTIFIED BY 'pass';同時授權與設置密碼、無需 FLUSH否

⚠️ MySQL 5.7.6+ / 8.0 推薦統一使用 ALTER USER 'app'@'%' IDENTIFIED BY 'pass';(自動處理插件、刷新、驗證)。

二、PASSWORD() 函數說明

  • 將明文密碼單向雜湊為存儲格式(41 位 *... 或 16 位)
  • 驗證時:服務器對客戶端傳入明文同算法雜湊,比對 user 表存儲值
  • **無逆運算**,不可從雜湊還原明文
  • 手工操作 user 表時**必須**用 PASSWORD(),否則明文存儲導致無法登錄

三、訪問限制精細配置(GRANT 權限矩阵)

1. 全局權限(user 表)— 極度收緊

除 root/admin 外,**所有權限列 = 'N'**。

2. 庫級權限(db 表)— 應用賬號主戰場


GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
      CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE
ON `biz_db`.* TO 'app_user'@'10.0.0.%';

MySQL 5.0+ 新增權限:CREATE VIEW、SHOW VIEW、CREATE ROUTINE、ALTER ROUTINE、EXECUTE。

3. 表級/列級權限(tables_priv / columns_priv)— 極少用

極敏感欄位(薪資、身份證)可用列級權限隔離:


GRANT SELECT (id, name, dept) ON `hr_db`.`employee` TO 'hr_ro'@'%';
-- 或
INSERT INTO mysql.columns_priv (Host,Db,User,Table_name,Column_name,Column_priv)
VALUES ('%','hr_db','hr_ro','employee','salary','SELECT');

4. Host 通配符精確控制

Host 值匹配範圍
'192.168.1.10'單一 IP
'192.168.1.%'C 段
'192.168.1.0/255.255.255.0'CIDR
'%.example.com'域名後綴
'%'任意主機(慎用)

四、操作後必做

  • 手工修改授權表(INSERT/UPDATE/DELETE)後:**必須** FLUSH PRIVILEGES;
  • GRANT/REVOKE/ALTER USER/SET PASSWORD:自動刷新,**無需** 手動 FLUSH
  • 驗證:SHOW GRANTS FOR 'app_user'@'10.0.0.%';

掌握六大改密路徑與權限矩阵,能應對從「臨時改密」到「精細授權體系建設」的全谱系需求。

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