【摘要】网站后台数据库的安全,对企业内部客户信息等数据和企业网站正常运行至关重要。为保证网站数据库安全,增强企业网站运营的可靠性,本文将从数据库系统的用户权限、目录权限、漏洞探测和密码窃听四个方面对MYSQL和MSSQL数据库做安全性分析,并结合实例给出解决问题的出路。 【关键词】MYSQL;MSSQL;安全分析;漏洞探测 动态网站的安全是关系到网站是否正常运行的根本,而企业内部客户信息等数据的安全更是其命脉所在,这些数据通常都保存在网站的后台数据库中,那么安全可靠的数据库是至关重要的。目前中小型企业多使用MYSQL和MSSQL作为后台数据库。 本文将从数据库系统的用户权限、目录权限、漏洞探测和密码窃听四个方面对MYSQL和MSSQL数据库做安全性分析。 1.测试环境 Windows server 2003网络操作系统,默认系统管理员账户,在IIS6.0上配置网站和FTP服务器,系统支持asp,Asp.Net,PHP。安装有MySql5.1和SQL server2008数据库系统。 2.数据库安全性分析 2.1 用户权限 (1)当你试图联接一个MySQL服务器时,身份检查使用user表中3个字段(Host,User和Password)。服务器在user表条目中匹配你的主机名和用户名,并当你提供了正确的口令才接受连接。我们通过root用户和密码,连接数据库后,使用select命令查看用户和权限。如图1所示。 图1 Mysql初始用户及权限 第一条说明可在本机使用root用密码登陆,拥有删除记录,修改记录,删除表等权限,如果密码强壮,那么,这是安全的。 第二条表示在任何主机使用root不需密码登陆,拥有删除记录,修改记录,删除表等权限,’%’在Host列里意味着“任何主机”并且是不特定的。 第三条表示在本机(localhost)匿名登陆,拥有删除记录,修改记录,删除表等权限,空白User值意味着“任何用户”并且是最不特定的。 第四条表示可以在任何主机匿名登陆,但没有任何权限。 显然,第二,三,四都是不安全的! 解决方法:如果你不需要远程维护,删除掉第二条,delete from user where host=“%”and user=“root”;或者给它加个强壮的密码。删除第三条和第四条。 (2)MSSQL数据库的权限控制是基于master库的syslogins表,拥有所有权限的帐号是sa,其他还有sysadmin,db_owner等不同权限帐号。由于SQL Server不能删除Sa这个超级用户,所以必须对这个帐号进行最强的保护,如使用非常强壮的密码。新建立一个拥有与Sa一样权限的超级用户来管理数据库,只有当其它系统管理员不可用或忘了密码时才使用Sa。定期检查所有登陆帐号,查看是否有不符合要求的密码。 如下命令检查是否有空口令帐号存在。 |