遵循最小权限原则,精确分配用户权限,避免授予SUPER等高危权限,禁用匿名账户,强化密码策略与登录限制,定期审计账户和权限配置,持续维护安全设置。

在 MySQL 中防止权限提升攻击,关键在于最小权限原则、安全配置和定期审计。权限提升通常发生在攻击者利用高权限账户或配置漏洞获取未授权访问。以下是具体防护措施。
遵循最小权限原则
为每个用户分配完成任务所需的最低权限,避免使用超级权限账户作为应用连接账号。
• 使用 GRANT 精确控制权限,例如只赋予 SELECT、INSERT 而非 ALL PRIVILEGES。• 避免对非必要用户授予 FILE、SUPER、PROCESS、SHUTDOWN 等高危权限。
• 删除或禁用默认的匿名账户(如 '‘@localhost)。
限制超级权限的使用
SUPER 权限允许绕过许多运行时限制,容易被用于提权。
• 仅在必要时授予 SUPER 权限,并定期审查拥有该权限的账户。• 在 MySQL 8.0+ 中,可考虑用更细粒度的动态权限替代部分 SUPER 功能。
• 设置 super_read_only=ON 可进一步限制主库写操作。
加强身份验证与账户管理
弱口令和暴露的账户是提权的常见入口。
• 强制使用强密码策略,启用 validate_password 插件。• 限制登录主机,例如不使用 '%' 而指定具体 IP 或内网段。
• 定期清理不再使用的账户,使用 DROP USER 或 RENAME USER 管理账户。
安全配置与日志审计
合理配置 MySQL 服务可减少攻击面。
• 关闭不必要的功能,如禁用符号链接(symbolic-links=0)。• 启用通用日志或审计插件(如 MariaDB Audit Plugin 或商业版 Enterprise Audit)监控可疑行为。
• 定期检查 mysql.user 表是否存在异常权限分配。
基本上就这些。只要坚持最小权限、管好超级账户、强化认证和开启审计,MySQL 的权限提升风险就能大幅降低。安全不是一次配置,而是持续维护的过程。










