SQL Server和MySQL的安全性分析

2008-02-23 07:40:41来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  数据库是电子商务、金融连同ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织连同政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,还掌控着敏感的金融数据。但是数据库通常没有像做系统和网络这样在安全性上受到重视。数据是企业,组织的命脉所在,因此选择一款安全的数据库是至关重要的。大型网站一般使用Oracle或DB2,而中小型网站大多数使用更加灵活小巧的SQL Server数据库或MySQL数据库。那么,在同样的条件下,微软的SQL Server和免费的MySQL哪个更加安全呢?

  我在我的机子上面用管理员帐号默认安装了mssql和mysql以便在相同的情况下测试他们的安全性。我的系统配置如下:操作系统Microsoft Windows 2000 Version5.0,安装了sp4,ftp服务和iis服务,支持asp和php。系统只有一个管理员帐号admin,guest帐号没有禁用。

  一.系统内部安全性分析

  1.mysql数据库权限控制问题

  mysql的权限控制是基于mysql这个数据库的,叫做授权表,一共包括包括六个表columns_priv,db,func,host,tables_priv和user。先使用desc user命令查看很重要的user表的结构以便查询内容,现在能够查看他的权限配置了。使用命令select host,user,password,delete_priv,update_priv,drop_priv from user;这个命令查看了几个比较危险的权限,显示结果如下:

  mysql> select host,user,password,delete_priv,update_priv,drop_priv from user;

   ----------- ------ ------------------ ------------- ------------- -----------

  | host | user | password | delete_priv | update_priv | drop_priv |

   ----------- ------ ------------------ ------------- ------------- -----------

  | localhost | root |0e4941f53f6fa106 | Y | Y | Y |

  | % | root | | Y | Y | Y |

  | localhost | | | Y | Y | Y |

  | % | | | N | N | N |

   ----------- ------ ------------------ ------------- ------------- -----------

  4 rows in set (0.00 sec)

  第一条表示在本机使用root用密码登陆,拥有删除记录,修改记录,删除表等权限,好,这是安全的。第二条表示在任何主机使用root不需密码登陆,拥有删除记录,修改记录,删除表等权限。第三条表示在本机匿名登陆,拥有删除记录,修改记录,删除表等权限。最后条表示能够再任何主机匿名登陆,但是没有任何权限。显然,第二,三,四都是不安全的!第二条不用说,就第三条而言,就算您在本地是guest权限,但是也能够登陆mysql数据库,而且拥有全部权限。这样,就能够对数据库为所欲为了。

  解决方法:假如您无需远程维护,删除掉第二条,delete from user where host="%" and user="root";或给他加个强壮的密码。删除第三条,delete from user where host="localhost" and user="";

  2.mysql安装目录权限问题

  mysql默认安装到c:\mysql,但是c盘默认是everyone完全控制,由于权限的继承性,c:\mysql对everyone也是完全控制的,显然这样是不安全的。因为恶意用户能够删除重要的数据文档。

  解决方法:重新配置mysql目录的存取权限。或将mysql安装到其他目录,假如您移动Mysql分发到D:\mysql,您就必须使用用D:\mysql\bin\mysqld --basedir D:\mysql来启动mysqld,甚至还需要修改他的配置文档。

  3.mssql数据库权限控制问题

  mssql数据库的权限控制是基于master库的syslogins表,拥有任何权限的帐号是sa,其他更有sysadmin,db_owner等不同权限帐号。但是,mssql数据库最高权限帐号sa的默认密码是空,这样假如安装的时候不注意,就会给数据带来毁灭性的灾难。恶意攻击者能够修改,删除任何数据,更加重要的是mssql帐号能够利用扩展执行系统命令。

共3页。 1 2 3 :

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 数据库操作实例--插入、修改、删除

下一篇: 解决MySQL数据库中文模糊检索问题