[導讀] 資料庫是電子商務、金融以及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)!