DB2系統目錄視圖存在著一些安全隱患,這會為黑客或者其他不按好心的用戶竊取相關的資料提供了便利,如何才能加強DB2系統目錄的安全性,成為了我們需要迫切解決的問題。
此文章主要向大家描述的是在實際操作中如何讓DB2系統目錄視圖更加安全,在DB2數據庫中系統目錄視圖中主要是保存著數據庫各種對象的一些信息。如表與列的定義、各種對象的特權信息、某個用戶所擁有的特權信息等等都保存在目錄視圖中。
這個設計跟Oracle等數據庫系統類似。
在DB2系統目錄視圖中保存著數據庫各種對象的相關信息。如表與列的定義、各種對象的特權信息、某個用戶所擁有的特權信息等等都保存在目錄視圖中。這個設計跟Oracle等數據庫系統類似。不過在這些目錄視圖的權限設計方面有比較大的差異。
一、系統目錄視圖在安全上的隱患。
在Oracle數據庫中,也有跟系統目錄視圖類似的設計。如將相關的數據庫對象以及權限等信息等存儲在數據字典中。但是對於Oracle數據庫來說,對於這個數據字典相關的視圖做了相關的限制。如在Oracle數據庫中,將數據字典分為user、all、dba三類。一般用戶只能夠使用user或者all數據字典視圖。
也就是說,只能夠查詢到自己擁有的對象或者自己擁有特定權限的對象信息。對於他人建立的對象,或者自己沒有權查詢的對象信息,一般用戶是查詢不到的。只有像具有數據庫管理員等特權的用戶才可以查詢到全部數據庫對象的信息。這在很大程度上保障了數據字典視圖的安全性。
但是對於DB2數據庫的系統目錄視圖,在這方面做的就不是很到位。如默認情況下,在部署DB2數據庫的時候,數據庫會自動創建系統目錄視圖。而在創建這個系統目錄視圖的時候,系統會將這個目錄視圖的select查詢權限賦予給public組。將這個目錄視圖賦予給這個組,就以為這數據庫系統中的用戶都具有查詢這個系統目錄視圖的權限。
即使這個對象不是這個用戶所創建的,或者用戶沒有這個對象的訪問權限,用戶也可以查詢到這個對象的相關信息,如誰創建了這個對象,誰擁有這個對象的哪些權限的信息。當數據庫中數據的保密級別或者商業價值不怎麼高的時候,這麼設計不怎麼會產生安全問題。