欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Mssql和Mysql的安全性分析

程序员文章站 2022-03-29 09:35:28
...
[导读]   数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和 客户信息。大多数企业、组织以及*部门的电子数据都保存在各种数据库中,他们 用这些数据库保存一些个人资料,还掌握着敏感的金

  数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和
客户信息。大多数企业、组织以及*部门的电子数据都保存在各种数据库中,他们
用这些数据库保存一些个人资料,还掌握着敏感的金融数据。但是数据库通常没有象
操作系统和网络这样在安全性上受到重视。数据是企业,组织的命脉所在,因此选择
一款安全的数据库是至关重要的。大型网站一般使用oracle或DB2,而中小型网站大
多数使用更加灵活小巧的mssql数据库或者mysql数据库。那么,在同样的条件下,微
软的mssql和免费的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="";

以上就是 Mssql和Mysql的安全性分析的内容,更多相关内容请关注PHP中文网(www.php.cn)!