Mssql和Mysql的安全性分析

[導(dǎo)讀]   數(shù)據(jù)庫是電子商務(wù)、金融以及erp系統(tǒng)的基礎(chǔ),通常都保存著重要的商業(yè)伙伴和 客戶信息。大多數(shù)企業(yè)、組織以及政府部門的電子數(shù)據(jù)都保存在各種數(shù)據(jù)庫中,他們 用這些數(shù)據(jù)庫保存一些個人資料,還掌握著敏感的金

  數(shù)據(jù)庫是電子商務(wù)、金融以及ERP系統(tǒng)的基礎(chǔ),通常都保存著重要的商業(yè)伙伴和
客戶信息。大多數(shù)企業(yè)、組織以及政府部門的電子數(shù)據(jù)都保存在各種數(shù)據(jù)庫中,他們
用這些數(shù)據(jù)庫保存一些個人資料,還掌握著敏感的金融數(shù)據(jù)。但是數(shù)據(jù)庫通常沒有象
操作系統(tǒng)和網(wǎng)絡(luò)這樣在安全性上受到重視。數(shù)據(jù)是企業(yè),組織的命脈所在,因此選擇
一款安全的數(shù)據(jù)庫是至關(guān)重要的。大型網(wǎng)站一般使用oracle或DB2,而中小型網(wǎng)站大
多數(shù)使用更加靈活小巧的mssql數(shù)據(jù)庫或者mysql數(shù)據(jù)庫。那么,在同樣的條件下,微
軟的mssql和免費的mysql哪個更加安全呢?

我在我的機子上面用管理員帳號默認(rèn)安裝了mssql和mysql以便在相同的情況下測
試他們的安全性。我的系統(tǒng)配置如下:操作系統(tǒng)Microsoft windows 2000 Version5.0,
安裝了sp4,ftp服務(wù)和iis服務(wù),支持asp和php。系統(tǒng)只有一個管理員帳號admin,guest
帳號沒有禁用。

  一.系統(tǒng)內(nèi)部安全性分析

1.mysql數(shù)據(jù)庫權(quán)限控制問題

mysql的權(quán)限控制是基于mysql這個數(shù)據(jù)庫的,叫做授權(quán)表,一共包括包括六個表
columns_priv,db,func,host,tables_priv和user。先使用desc user命令查看非
常重要的user表的結(jié)構(gòu)以便查詢內(nèi)容,現(xiàn)在可以查看他的權(quán)限設(shè)置了。
使用命令

select?host,user,password,delete_priv,update_priv,drop_priv?from?user;

這個命令查看了幾個比較危險的權(quán)限,顯示結(jié)果如下:

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用密碼登陸,擁有刪除記錄,修改記錄,刪除表等權(quán)限,
好,這是安全的。第二條表示在任何主機使用root不需密碼登陸,擁有刪除記錄,
修改記錄,刪除表等權(quán)限。第三條表示在本機匿名登陸,擁有刪除記錄,修改記
錄,刪除表等權(quán)限。最后條表示可以再任何主機匿名登陸,但是沒有任何權(quán)限。
顯然,第二,三,四都是不安全的!第二條不用說,就第三條而言,就算你在本地
是guest權(quán)限,但是也可以登陸mysql數(shù)據(jù)庫,而且擁有全部權(quán)限。這樣,就可以對數(shù)
據(jù)庫為所欲為了。
解決方法:如果你不需要遠(yuǎn)程維護(hù),刪除掉第二條,

delete?from?user?where?  host="%"?and?user="root";

或者給它加個強壯的密碼。刪除第三條,

delete?from?  user?where?host="localhost"?and?user="";

?以上就是?Mssql和Mysql的安全性分析的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.php.cn)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊6 分享