操作流程 (phpMyAdmin 4.x/5.x 通用)
- 以 root 登錄 phpMyAdmin,點擊頂部導航欄 「用戶帳號」 (User accounts) 或 「權限」。
- 點擊「新增用戶帳號」 (Add user account):
登錄信息:
用戶名: admin_user # 自定義
主機名: localhost # 或 % (允許遠程), 具體 IP
密碼: 強密碼 (建議生成 32 位隨機字符)
重複密碼: 同上
密碼生成: [生成] 按鈕自動填充
全局權限: **全部不勾選** (保持默認 N)
資源限制: 全部 0 (無限制)
- 點擊「執行」 (Go) 創建用戶。頁面提示「已添加新用戶」。
- 編輯該用戶權限 (點擊用戶列表中該行的「編輯權限」圖標)。
- 切換到「數據庫」標籤頁**。
數據庫特定權限:
在「添加權限於以下數據庫」輸入框輸入: target_db
或從下拉選單選擇: target_db
點擊「執行」
- 在彈出的「編輯權限 - 數據庫 target_db」頁面**:
數據庫: target_db
表: **全部勾選** (或按需選擇: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER, EXECUTE)
權限: 勾選所需權限 (開發賬號通常給 DML + DDL 權限,只讀賬號僅給 SELECT)
點擊「執行」
- 驗證:新開瀏覽器無痕模式,用新用戶登錄 phpMyAdmin,確認只能看到授權的庫/表,能正常操作。
等效 SQL 命令 (腳本化/自動化用)
-- 1. 創建用戶 (mysql 5.7+)
CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'StrongPassw0rd!';
-- 2. 授權指定庫 (按需調整權限列表)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
CREATE VIEW, SHOW VIEW, TRIGGER, EXECUTE
ON `target_db`.* TO 'admin_user'@'localhost';
-- 3. 刷新權限
FLUSH PRIVILEGES;
常見授權模板
| 角色 | 建議權限 | 適用場景 |
| 只讀分析 | SELECT, SHOW VIEW | 報表、BI、審計 |
| 開發/測試 | SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, TRIGGER | 日常開發、自動化測試 |
| 應用服務賬號 | SELECT, INSERT, UPDATE, DELETE, EXECUTE | 生產環境應用連接池 (無 DDL) |
| 遷移/同步工具 | SELECT, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW, LOCK TABLES | mysqldump, Canal, Debezium |
安全最佳實踐
- 主機名限制:優先
localhost 或具體應用服務器 IP,避免 % (任意主機)。
- 強密碼策略:長度 ≥ 20,包含大小寫、數字、特殊符號,定期輪換。
- 最小權限原則:只授業務必需的庫、表、列、操作。
- 定期審計:
SELECT User, Host FROM mysql.user; 檢查異常賬號;SHOW GRANTS FOR 'user'@'host'; 核對權限。
- 禁用無密碼賬號:
DELETE FROM mysql.user WHERE Password = '' OR Authentication_string = '';