mysql数据库安全_MYSQL数据库的安全保护措施
MySQL是最流⾏的开源数据库引擎,本⾝是⾮常安全的。但仍需要添加额外的安全层来保护你的MySQL数据库不受攻击。下⾯将介绍⼀些实⽤的办法,来保护MySQL数据库,加强⽹站的安全性。
⼀、保护操作系统
确保操作系统的安全是保护数据库安全的前提,维护操作系统和MySQL服务器,你可以使⽤以下⽅法:
1.主机数据库服务器和web服务器分别在不同的物理机器上,如果可能,在⼀个单独的服务器上运⾏数据库服务器,以预防由其他应⽤程序或服务的漏洞造成的服务器问题。
2.安装杀毒软件,防⽕墙以及所有推荐的补丁和更新,防⽕墙能有效地把流量过滤到MySQL服务器。为了更好的提⾼安全性,你还可以实⾏⼊⼝封锁。
3.禁⽤所有不必要的服务,⽽且这样的服务越少越好。
⼆、保护所有帐户和密码
攻击者侵⼊MySQL数据库最常见的⼀种⽅法是窃取有安全隐患的账户信息。为了降低出现这种风险的可能性,不妨试⼀试下⾯的⽅法:mysql数据库的方法
1.给所有MySQL账户设置密码
客户程序并不是每次都能识别⽤户,因此,如果⽤户知道数据库名但是没有这个⽤户名的密码,那他可以指定任何其他⽤户名连接到MySQL数据库。让每个MySQL⽤户名都设置密码,这样⼀来,要想利⽤匿名账户建⽴连接将会变得很困难。
2.不要使⽤根⽤户运⾏MySQL服务器
在安装MySQL的时候,默认情况下创建了⼀个命名为“root”的管理⽤户。每个⼈都知道这⼀点,所以攻击者通常试图侵⼊这
个“root”⽤户来获取访问权限。为了保障这个重要帐户的安全,需要给它重新命名,然后更改⼀个长并且复杂的密码,在MySQL控制台使⽤mysql> RENAME USER root TO new_username;
指令给根⽤户重命名,使⽤mysql> SET PASSWORD FOR 'username'@'%hostname' =
PASSWORD('newpassword');
指令来修改密码。
3.减少管理员账户
管理员账户越多,风险越⼤,应该保持尽可能最少的帐户数量,只有为那些真正需要它的⼈创建账户。需要定期检查并清理那些不必要的账户。
4.加强所有的密码
除了管理员帐户,还需要加强所有其他⽤户的密码,检查所有的⽤户名和密码,必要的时候重置安全强度低的账户密码。
三、限制数据库权限
每个⽤户都应该被授予适当的权限以便数据库能够正常运⾏,但这样⼀来也加⼤了数据库的安全隐患。就数据库权有以下⼏点建议:
1.不要授予⾮管理员⽤户⽂件/⾼级/程序权限
⽂件,⾼级和程序权限都不应该被滥⽤。⽂件权限让⽤户可以在⽂件系统中的任何⼀个地⽅编写⽂件,⽽程序权限让⽤户在任何时候都能够查看服务器活动,终⽌客户端连接甚⾄更改服务器操作。为了数据库安全,这些权限只能授予给管理员账户。
2.限制或禁⽤显⽰数据库权限
显⽰数据库特权可以⽤于收集数据库信息,所以攻击者通常利⽤它来窃取数据并准备进⼀步攻击。应该把这个权限授予那些真正需要的⼈,或者直接禁⽤这个权
限,你只需要把skip-show-database添加到MySQL数据库中的/etc/myf配置⽂件中。对于Windows操作系统来说,则需要添加到my.ini⽂件中。
3.限制管理员和所有其他⽤户的权限
即使是管理员,也不要在同⼀账户中授予所有权限。最好降低管理员账户访问数据的权限。其他的⽤户,检查所有他们拥有的权限,以确保⼀切都是合适的。
四、删除风险组件
MySQL数据库的默认配置有⼀些不必要的组件,可以考虑以下将它们删除,具体有:
1.禁⽤LOAD DATA LOCAL INFILE指令
这个命令允许⽤户读取本地⽂件甚⾄访问其他操作系统上的⽂件,这可能帮助攻击者收集重要的信息并利⽤应⽤程序的漏洞侵⼊你的数据库。需要做的是把set-variable=local-infile=0插⼊到MySQL数据库的myf⽂件中,来禁⽤这个指令。
2.删除测试数据库
有⼀个默认的“测试”数据库⽤于测试⽬的。由于这个数据库有安全风险,匿名⽤户也可以访问,你应该使⽤mysql> DROP database test;指令尽快把它清除掉。
3.删除历史⽂件
MySQL服务器有⼀个历史⽂件,它可以帮助你在安装出错的时候到问题所在。历史⽂件包含敏感信息,⽐如说密码,如果这些信息被攻击者获得,那么将会给数据库带来巨⼤的安全隐患。在安装成功后,历史⽂件并没有什么⽤,因此你可以使⽤cat /dev/null >
~/.mysql_history指令来删除⽂件当中的内容。
五、限制远程访问MySQL服务器
对于⼤多数⽤户来说,不需要通过不安全的开放⽹络来访问MySQL服务器。可以通过配置防⽕墙或硬件,或者迫使MySQL只听从localhost来限制主机。此外,需要SSH隧道才能进⾏远程访问。
如果你想仅仅从本地主机来限制⽤户建⽴连接,只需要在配置⽂件中添加bind-address=127.0.0.1。
六、利⽤⽇志记录
启⽤⽇志记录让你可以检测服务器上的活动,这样你就可以分析失败的登录尝试和敏感⽂件的访问记录,以便了解是否存在向服务器和数据库发起的恶意活动。 只需要把log =/var/log/mylogfile指令添加到MySQL配置⽂件中,就可以⼿动启⽤⽇志记录功能。
⾄于⽇志记录,需要注意以下两点:
1.⽇志记录仅适⽤于查询数量有限的数据库服务器。对于信息量⼤的服务器,这可能会导致⾼过载。
2.由于“”⽂件包含敏感数据表名和密码,只有“root”和“mysql”才有访问和记录这个⽂件的权限。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。