5月30日 19:40
MariaDB 如何做安全配置?哪些设置最容易被忽略?
MariaDB 安全配置不能只理解成“把 root 密码改复杂一点”。更稳妥的做法是从账号权限、网络入口、传输加密、文件导入导出、审计日志和备份存放几个层面一起收紧。很多事故不是数据库漏洞导致的,而是测试账号没删、远程访问开太大、备份文件裸放。
追问
最小权限应该怎么落地?
应用不要连 root,也不要授予 ALL PRIVILEGES。按业务库创建专用账号,只授予需要的 SELECT、INSERT、UPDATE、DELETE 等权限。
远程访问应该怎么限制?
bind-address 不要直接监听公网地址,账号 host 也不要写成 %。需要临时排障时可以开白名单,但结束后要及时移除。
SSL/TLS 一定要开启吗?
跨主机连接建议开启 require-secure-transport,避免账号密码和查询内容明文暴露。上线前要确认客户端驱动和证书配置支持。
哪些文件相关配置容易被忽略?
local_infile 建议关闭,secure_file_priv 应限制导入导出目录。备份文件要加密并放在受控目录。
审计和日常运维要看什么?
关注失败登录、权限变更、异常来源 IP、大批量导出和高危 DDL。日志要轮转,否则磁盘打满也是事故。
写段配置
sqlCREATE USER 'app_user'@'10.%' IDENTIFIED BY 'strong_password'; GRANT SELECT, INSERT, UPDATE ON app_db.* TO 'app_user'@'10.%';
inibind-address=10.0.0.5 local_infile=0 require-secure-transport=ON