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

MySQL GRANT 指令詳解:14 種權限、主機匹配、密碼設定與實戰範例

     編輯:MySQL 綜合教學

前言

GRANT 是 MySQL 授權的核心指令,支援細粒度到欄位層級的權限控管。本文完整列出 14 種標準權限、管理權限、特殊權限,並說明主機匹配規則、密碼設定與常見授權範本。

標準權限 (14 種)

權限適用層級說明
SELECT表、欄位查詢資料
INSERT表、欄位新增資料
UPDATE表、欄位修改資料
DELETE表刪除資料
CREATE庫、表建立資料庫/表
DROP庫、表刪除資料庫/表
INDEX表建立/刪除索引
ALTER表修改表結構
GRANT庫、表授權給他人
REFERENCES表、欄位外鍵參考
RELOAD全域重載授權表、刷新日誌
SHUTDOWN全域關閉服務
PROCESS全域檢視/終止所有執行緒
FILE全域讀寫伺服器檔案 (LOAD DATA/SELECT INTO OUTFILE)

管理權限 (DBA 專用)

  • CREATE TEMPORARY TABLES、LOCK TABLES、REPLICATION CLIENT、REPLICATION SLAVE、SHOW DATABASES、SUPER (Kill 任何執行緒、變更全域變數)。

特殊權限

  • ALL / ALL PRIVILEGES:除 GRANT OPTION 外所有權限。
  • USAGE:僅允許連線,無任何操作權 (建立帳號預設)。

GRANT 完整語法

GRANT 權限1,權限2,... ON 資料庫.表 TO '用戶'@'主機' IDENTIFIED BY '密碼';

關鍵規則

  • 主機:localhost (Unix socket)、127.0.0.1 (TCP)、IP、域名、% (通配任意)。localhost ≠ 127.0.0.1,需分別授權。
  • 密碼:不可為空,否則建立失敗。
  • 資料庫.表:*.* 代表全域;db.* 全庫;db.tbl 單表。

實戰授權範本

-- 僅讀帳號 (任意主機)
GRANT SELECT ON prod.* TO 'readonly'@'%' IDENTIFIED BY 'StrongPass!23';

-- 開發帳號 (特定庫、DDL+DML)
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON devdb.* TO 'dev'@'192.168.1.%' IDENTIFIED BY 'DevPass!23';

-- 跨庫遷移帳號 (需 FILE 權限)
GRANT SELECT,FILE ON *.* TO 'migrate'@'10.0.0.5' IDENTIFIED BY 'MigPass!23';

-- 刪除用戶 (5.7+)
DROP USER 'olduser'@'%';

延伸閱讀

  • 教您如何查看 MySQL 用戶權限
  • 授予 MySQL 用戶權限的語句 (細分到 View/Procedure)
  • MySQL 用戶權限的取消與刪除
  • MySQL 索引缺點與注意事項
  • 如何查看 MySQL 索引
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved