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

MySQL 使用者建立、授權、密碼管理與權限回收完整語法指南

     編輯:MySQL 資料庫相關知識

MySQL 權限系統基於「使用者@主機」模型,精細控制存取層級。本文匯整建立使用者、授權、改密、回收、刪除的標準語法與實戰注意事項。

1. 建立使用者

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • host:localhost(本機)、192.168.1.%(IP 段)、%(任意遠端)
  • 密碼可為空,但生產環境嚴禁空密碼

2. 授權

GRANT privileges ON db.table TO 'username'@'host' [WITH GRANT OPTION];
  • privileges:SELECT, INSERT, UPDATE... 或 ALL
  • db.table:*.* 表示所有庫所有表
  • WITH GRANT OPTION:允許該使用者再授權他人

3. 修改密碼

-- 指定使用者
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpass');

-- 當前登入使用者
SET PASSWORD = PASSWORD('newpass');

4. 回收權限

REVOKE privilege ON db.table FROM 'username'@'host';

關鍵陷阱:授權與回收的層級必須精確對應。若授權為 GRANT SELECT ON test.user TO 'pig'@'%',則 REVOKE SELECT ON *.* FROM 'pig'@'%' 無效;必須對應 REVOKE SELECT ON test.user FROM 'pig'@'%'。查看實際權限請用:

SHOW GRANTS FOR 'username'@'host';

5. 刪除使用者

DROP USER 'username'@'host';

常用權限速查表(節錄)

權限說明
ALTER允許 ALTER TABLE
CREATE允許 CREATE TABLE
DROP允許 DROP TABLE
INDEX允許建立/刪除索引
FILE允許 SELECT ... INTO OUTFILE、LOAD DATA INFILE
PROCESS允許 SHOW FULL PROCESSLIST
RELOAD允許 FLUSH 操作
SHUTDOWN允許 mysqladmin shutdown
SUPER允許 CHANGE MASTER、KILL、全域變數設定等
USAGE僅允許連線,無實質權限

最佳實踐原則

  1. 遵循最小權限原則:僅授業務必要權限
  2. 生產環境禁用 root 遠端登入,建立專用運維帳號
  3. 定期 SHOW GRANTS 審計權限異動
  4. 使用 mysql_secure_installation 清理預設匿名帳號與測試庫
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved