用戶名 / 密碼 / 來源(Host),不含資料庫名。同一用戶可針對不同庫設不同密碼:
GRANT SELECT ON db1.* TO 'abc'@'srv1' IDENTIFIED BY 'pwd1';
GRANT SELECT ON db2.* TO 'abc'@'srv1' IDENTIFIED BY 'pwd2';
mysql.user (user+password+host)。db、tables_priv、columns_priv 判斷庫/表/列權限。| 權限 | 風險 |
|---|---|
| FILE | LOAD DATA INFILE 讀取任意伺服器檔案 |
| PROCESS | SHOW PROCESSLIST 窺探他人 SQL、KILL 終止查詢 |
| SUPER | 終止任意查詢、改全域變數、控制複寫 |
| SHUTDOWN | 關閉資料庫服務 |
| RELOAD | 執行 FLUSH * 管理命令 |
SHOW VARIABLES LIKE 'have_openssl'; 為 YES)。-- 僅允許 SSL 連線
GRANT ALL ON ssl_db.* TO 'abc'@'%' IDENTIFIED BY 'pwd' REQUIRE SSL;
-- 驗證客戶端憑證
GRANT ALL ON ssl_db.* TO 'abc'@'%' IDENTIFIED BY 'pwd' REQUIRE X509;
-- 指定客戶端憑證主體
GRANT ALL ON ssl_db.* TO 'abc'@'%' IDENTIFIED BY 'pwd'
REQUIRE SUBJECT '/C=US/ST=NY/L=Albany/O=Widgets Inc./CN=client-ray';
-- 指定簽發者 CA
GRANT ALL ON ssl_db.* TO 'abc'@'%' IDENTIFIED BY 'pwd'
REQUIRE ISSUER '/C=US/ST=NY/L=Albany/O=Widgets Inc./CN=ca';
-- 指定加密套件
GRANT ALL ON ssl_db.* TO 'abc'@'%' IDENTIFIED BY 'pwd'
REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA';
| 表 | 層級 | 說明 |
|---|---|---|
| user | 全域 | 認證、全域權限、加密密碼 |
| host | 主機 | 主機級權限,GRANT 不影響,需手工維護 |
| db | 資料庫 | 庫級權限 |
| tables_priv | 資料表 | 表級權限 |
| columns_priv | 欄位 | 列級權限 |
均為 MyISAM,可用標準 SQL 維護。
SELECT User, Host, plugin FROM mysql.user 審計弱密碼/過期帳號。