通用授權語法
GRANT priv1, priv2, ... ON db_name.table_name TO 'user'@'host' IDENTIFIED BY 'password';
權限關鍵字說明
| 權限 | 說明 |
| SELECT | 查詢 |
| INSERT | 插入 |
| UPDATE | 更新 |
| DELETE | 刪除 |
| CREATE | 建庫/建表 |
| DROP | 刪庫/刪表 |
| INDEX | 索引操作 |
| ALTER | 修改表結構 |
| GRANT OPTION | 授權給他人 |
| REFERENCES | 外鍵引用 |
| RELOAD | FLUSH 操作 |
| SHUTDOWN | 關閉服務 |
| PROCESS | 查看進程 |
| FILE | 文件導入導出 |
ALL PRIVILEGES 或 ALL 代表上述所有權限。
主機匹配規則
localhost:本機 Unix socket 連接。
127.0.0.1:本機 TCP 連接。
192.168.1.%:IP 段通配。
%:任意主機(最寬鬆)。
host.example.com:域名匹配(需 DNS 正反解)。
常用範例
-- 全庫全表所有權限,任意 IP,密碼 123
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY '123';
-- 僅特定庫讀寫權限
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'dev'@'192.168.1.%' IDENTIFIED BY 'devpass';
-- 僅特定表只讀
GRANT SELECT ON mydb.orders TO 'readonly'@'localhost' IDENTIFIED BY 'ropass';
授權後必須執行
FLUSH PRIVILEGES;
查看用戶權限
SHOW GRANTS FOR 'user1'@'%';
撤銷權限
REVOKE ALL PRIVILEGES ON *.* FROM 'user1'@'%';
- 上一篇文章: MySQL 實現關聯訂單統計:收貨人/地址任一匹配即關聯,關聯超 3 筆輸出用戶 ID
- 下一篇文章: MySQL 命令行閃退原因與一鍵修復:服務未啟動導致
Copyright ©
程式碼之家 All Rights Reserved