启用强密码策略、限制用户权限、配置SSL加密、加固配置文件及服务是MySQL安全核心措施,可有效防范未授权访问与数据泄露风险。
配置 MySQL 的安全性选项是保障数据库系统稳定和数据安全的关键步骤。合理的安全设置可以防止未授权访问、降低攻击风险,并满足合规要求。以下是几个核心的安全配置建议,适用于大多数生产环境。
启用强密码策略
MySQL 支持通过插件实现密码复杂度校验,防止使用弱密码。
- 安装 validate_password 插件:INSTALL PLUGIN validate_password SONAME 'validate_password.so';
- 设置密码策略级别(LOW/MEDIUM/STRONG),例如在 my.cnf 中添加:
validate_password.policy = MEDIUM - 要求密码包含数字、大小写字母和特殊字符,长度不少于8位
- 定期强制用户修改密码,可通过 CREATE USER 或 ALTER USER 设置密码过期策略
限制用户权限与远程访问
最小权限原则是数据库安全的基础,避免使用 root 账号进行日常操作。
- 只授予用户必要的权限,例如用 GRANT SELECT, INSERT ON db.* TO 'user'@'host';
- 禁止 root 用户从远程登录,确保 'root'@'%' 不存在,仅保留 'root'@'localhost'
- 明确指定用户可连接的主机,避免使用 % 泛域名,除非确实需要远程接入
- 及时删除或禁用不再使用的账户:DROP USER 'username'@'host';
配置 SSL 加密连接
开启 SSL 可防止数据在网络传输中被窃听。
- 确认 MySQL 编译时支持 SSL,运行 SHOW VARIABLES LIKE 'have_ssl'; 应返回 YES
- 在 my.cnf 的 [mysqld] 段中启用 SSL:
ssl-ca=ca.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem - 创建用户时强制使用 SSL:
CREATE USER 'secure_user'@'%' REQUIRE SSL; - 客户端连接时添加 --ssl-mode=REQUIRED 参数
加固 MySQL 配置文件与服务
调整默认配置可显著提升系统整体安全性。
- 修改默认端口 3306 为非常见端口(可选,配合防火墙更有效)
- 关闭不必要的功能,如禁用 LOCAL INFILE:
local_infile = 0 - 启用日志审计(如果支持)记录登录和操作行为
- 确保 my.cnf 文件权限为 600,仅允许 MySQL 用户读写
- 定期更新 MySQL 版本,修补已知漏洞
基本上就这些。合理配置以上选项能有效防范多数常见安全威胁。安全不是一劳永逸的工作,建议结合操作系统层面的防火墙、入侵检测和定期审查账户与权限来构建纵深防御体系。
mysql word 操作系统 防火墙 端口 ssl 配置文件 red mysql select require 数据库 ssl