云环境MySQL权限配置需遵循最小权限原则,限制监听地址为内网、禁用root远程登录、按角色创建专用账号、强制TLS加密、定期审计权限与登录行为。

在云环境中配置 MySQL 权限,核心是遵循最小权限原则、分离管理与业务账号、禁用默认高危配置,并结合云平台提供的安全能力做纵深防护。
严格限制远程访问与监听地址
云数据库默认可能绑定 0.0.0.0 或开放公网 IP,极易被暴力扫描。应确保 MySQL 仅监听内网地址(如 VPC 内网段),禁止绑定公网或 0.0.0.0。若必须远程管理,通过云平台的「白名单」或「安全组」控制源 IP,而非依赖 MySQL 自身的 host 限制。
- 修改 my.cnf 中的 bind-address 为具体内网 IP(如 10.0.1.5)或 127.0.0.1
- 云厂商(如阿里云 RDS、腾讯云 CDB)不开放 my.cnf 修改权限,需在控制台设置「专有网络 VPC」和「安全组规则」,只放行应用服务器所在子网
- 禁用 skip-networking(除非纯本地使用),但绝不开启无保护的公网访问
按角色创建专用账号,禁用 root 远程登录
云环境不应使用 root 账号连接业务应用。应为每个应用、每个功能模块创建独立账号,并精确授予所需库表权限。
- 创建应用账号示例:
CREATE USER 'app_order'@'10.0.1.%' IDENTIFIED BY 'StrongPass2024!';
GRANT SELECT, INSERT, UPDATE ON shop_db.orders TO 'app_order'@'10.0.1.%';
FLUSH PRIVILEGES; - 删除或重命名 root 账号远程访问权限:
DROP USER 'root'@'%'; -- 或 REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%'; - 管理账号(如 DBA)应限定来源 IP,且仅用于跳板机或堡垒机连接
启用 TLS 加密连接,避免明文传输凭证
云内网虽相对可信,但东西向流量仍可能被截获。所有客户端连接(尤其跨可用区或混合云场景)应强制使用 TLS。
- 云数据库(如 AWS RDS、阿里云 RDS)通常提供一键启用 SSL 的选项,启用后下载服务器 CA 证书
- 应用连接串中添加参数:
?ssl-mode=REQUIRED&ssl-ca=/path/to/rds-combined-ca-bundle.pem - 验证是否生效:登录后执行 SHOW STATUS LIKE 'Ssl_cipher';,返回非空值即表示加密已启用
定期审计权限与登录行为
云平台日志服务(如阿里云 ActionTrail、AWS CloudTrail + RDS 日志)可记录账号创建、权限变更、异常登录等事件,配合 MySQL 自身的 general_log 或 slow_query_log(谨慎开启)辅助分析。










