[導(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)!