在生产中,安全是相当重要,毕竟你的核心数据都在里面,MySQL因为其开源的流行性,大量个人,企业,政府单位采用,但是,很多部署的时候采用都是默认的配置,这就导致了安全的相对欠缺,你需要针对你的安全有所加强。
总的来说,数据库一般划分为生产库,压测库,准生产库,测试库,开发库。下面部分主要说的是生产库,但其他库也适用。
1 mysql_secure_installation
这是数据库基础的安全设置脚本
a 设置root密码
b 移除匿名用户
c 禁止远程root登录
d 移除test数据库
以上是5.6版本,5.7有所加强但也仅此而以,看看你的环境是否存在上述问题,这个算是是最基本的安全吧。
2 连接访问安全
常见创建用户的时候你需要指定你的ip访问地址范围或者固定ip,一般化而言,只有特定唯一的几个ip的才会访问,或者说你可以采用代理访问的方式,减少应用直接访问你的数据库,而且现在很多中间件也都有白名单机制,原则上是把非法请求防止在数据库以外的地方。
规范数据库管理软件,实现管理软件的标准、统一化,还有严禁杜绝开启外网访问,如果客户端在远程,就根本不应该直接访问数据库,而应该使用中间件堡垒机或其他替代方案。
为了防止连入数据库的应用程序存在后门,造成数据库安全隐患,检查所有连接数据库程序的安全性。通过使用堡垒机或者其他监控登录数据库,禁止对数据库的直接操作。
对已经连接的IP网段进行规范化、统一化的管理