企业最有价值的资产通常是其数据库中的客户或产品信息因此在这些企业中数据库管理的一个重要部分就是保护这些数据免受外部攻击及修复软/硬件故障
在大多数情况下软硬件故障通过数据备份机制来处理多数数据库都自带有内置的工具自动完成整个过程所以这方面的工作相对轻松也不会出错但麻烦却来自另一面阻止外来黑客入侵窃取或破坏数据库中的信息不幸的是一般没有自动工具解决这一问题;而且这需要管理员手工设置障碍来阻止黑客确保公司数据的安全
不对数据库进行保护的常见原因是由于这一工作麻烦而复杂这确实是事实但如果你应用MySQL就可以使用一些方便的功能来显着减少面临的风险下面列出了以下几个功能
删除授权表中的通配符
MySQL访问控制系统通过一系列所谓的授权表运行从而对数据库表格或栏目级别的用户访问权利进行定义但这些表格允许管理员为一名用户设定一揽子许可或一组应用通配符的表格这样做会有潜在的危险因为黑客可能会利用一个受限的账户来访问系统的其他部分由于这一原因在设置用户特权时要谨慎始终保证用户只能访问他们所需的内容在给个别用户设定超级特权时要尤其小心因为这种级别允许普通用户修改服务器的基本配置并访问整个数据库
建议对每个用户账户应用显示特权命令以审查授权表了解应用通配符许可是否恰当
要求使用安全密码
用户账号的安全与用来保护它们的密码密切相关因此在安装MySQL时第一件事就应该设置MySQL根账号的密码(默认为空)修复这一漏洞后接下来就应要求每个用户账号使用一个密码且不要使用生日用户名或字典中的单词这些容易识别的启发式密码
建议应用MySQL安全授权选项避免使用旧的不大安全的MySQL密码格式
检查配置文件许可
一般来说要使服务器连接更为快速方便单个用户和服务器管理员必须把他们的用户账号密码存储在单用户MySQL选项文件中但是这种密码是以纯文本形式存储在文件中的很容易就可以查阅因此必须保证这样的单用户配置文件不被系统中的其他用户查阅且将它存储在非公共的位置理想情况下你希望单用户配置文件保存在用户的根目录许可为
加密客户与服务器之间数据传送
MySQL(及其它)客户与服务器构架的一个重要问题就是通过网络传送数据时的安全问题如果客户与服务器间的交互以纯文本形式发生黑客就可能嗅出被传送的数据包从而获得机密信息你可以通过激活MySQL配置中的SSL或应用一个OpenSSH这样的安全应用来为传送的数据建立一个安全的加密通道以关闭这一漏洞以这种形式加密客户与服务器连接可使未授权用户极难查阅往来的数据
禁止远程访问
如果用户不需要远程访问服务器你可以迫使所有MySQL连接通过UNIX插槽文件来完成从而大大减少网络受攻击的风险这一过程可通过跳过网络选项启动服务器来完成这样可以阻止TCP/IP网络连接到MySQL上保证没有用户可以远程连接系统
建议可以在MySQL服务器配置中添加捆绑地址指令来增强这一功能迫使MySQL捆绑当地机器的IP地址来保证只有同一系统中的用户可以连接到MySQL
积极监控MySQL访问记录
MySQL中带有很多不同的日志文件它们记录客户连接查询和服务器错误其中最重要的是一般查询日志它用时间标签记录每名客户的连接和中断时间并记录客户执行的每个查询如果你怀疑发生了不寻常的行为如网络入侵那么监控这个日志以了解行为的来源是个好方法
保护你的MySQL数据库是一个日常工作因此即使完成了上述步骤也还需要你利用更多的时间去了解更多的安全建议积极监控并更新你的系统安全