| 表 | 用途 |
|---|---|
| user | 全域權限與連線帳號 |
| db | 資料庫級權限 |
| tables_priv | 資料表級權限 |
| columns_priv | 欄位級權限 |
(host 表不受 GRANT/REVOKE 影響)
GRANT privileges (columns) ON what TO user IDENTIFIED BY 'password' WITH GRANT OPTION
ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE, FILE, PROCESS, RELOAD, SHUTDOWN, ALL, USAGE。*.*、db.*、db.tbl。user@host,host 支援 %、%.domain、IP/網段(192.168.0.0/17)。GRANT ALL ON samp_db.* TO boris@localhost IDENTIFIED BY 'ruby';
GRANT ALL ON samp_db.* TO max@'%' IDENTIFIED BY 'diamond';
GRANT ALL ON samp_db.* TO mary@'%.snake.net' IDENTIFIED BY 'topaz';
GRANT ALL ON samp_db.* TO rex@'192.168.128.0/17' IDENTIFIED BY 'ice';
-- 超級用戶
GRANT ALL ON *.* TO ethel@localhost IDENTIFIED BY 'coffee' WITH GRANT OPTION;
-- 僅管理權限
GRANT RELOAD ON *.* TO flush@localhost IDENTIFIED BY 'flushpass';
-- 資料庫級
GRANT ALL ON samp_db.* TO bill@racer.snake.net IDENTIFIED BY 'rock';
GRANT SELECT ON menagerie.* TO ro_user@'%' IDENTIFIED BY 'dirt';
-- 表/欄位級
GRANT SELECT ON samp_db.member TO bill@localhost IDENTIFIED BY 'rock';
GRANT UPDATE (expiration) ON samp_db.member TO bill@localhost;
GRANT UPDATE (street,city,state,zip) ON samp_db.member TO assistant@localhost;
GRANT ALL ON tmp.* TO ''@'%.mars.net';
REVOKE SELECT ON samp_db.* FROM bill@racer.snake.net;
DELETE FROM user WHERE User='bill' AND Host='racer.snake.net';
FLUSH PRIVILEGES;
建立 fred@%.snake.net 後,本機連線被 ''@localhost 匿名帳號攔截(無密碼導致拒絕)。解法:DELETE FROM user WHERE User=''; FLUSH PRIVILEGES;
若用伺服器主機名而非 localhost 授權,可能因名稱解析不一致(FQDN vs 短名)導致連線失敗。查看一般日誌中記錄的主機名格式,授權時以相同格式指定。