遠程授權遵循「最小權限、白名單 IP、專用賬號」三原則。本文提供兩類經典授權語句,可直接套用生產環境。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
% 匹配任意 Host。WITH GRANT OPTION 允許該用戶再授權他人(慎給)。GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
GRANT SELECT, INSERT, UPDATE, DELETE ON `app_db`.* TO 'app_user'@'10.0.1.%' IDENTIFIED BY 'strong_pwd';
FLUSH PRIVILEGES;
GRANT SELECT, INSERT, UPDATE ON `biz_db`.`order` TO 'biz_rw'@'10.0.2.%' IDENTIFIED BY 'pwd';
GRANT SELECT ON `biz_db`.`user` TO 'biz_ro'@'10.0.2.%' IDENTIFIED BY 'pwd';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'myuser'@'192.168.1.3';
SHOW GRANTS FOR 'app_user'@'10.0.1.%';
REVOKE ALL PRIVILEGES ON *.* FROM 'myuser'@'%';
DROP USER 'myuser'@'%';
FLUSH PRIVILEGES;
授權即攻擊面。每一條 GRANT 都要經過「業務必要性、IP 範圍最小化、權限列最小化」三問,才能進入版本庫。