自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何保障DB2系統(tǒng)目錄視圖的安全

數(shù)據(jù)庫
此文章主要向大家描述的是在實際操作中如何讓DB2系統(tǒng)目錄視圖更加安全,在DB2數(shù)據(jù)庫中系統(tǒng)目錄視圖中主要是保存著數(shù)據(jù)庫各種對象的一些信息。如表與列的定義、各種對象的特權(quán)信息、某個用戶所擁有的特權(quán)信息等等都保存在目錄視圖中。

DB2系統(tǒng)目錄視圖存在著一些安全隱患,這會為黑客或者其他不按好心的用戶竊取相關(guān)的資料提供了便利,如何才能加強(qiáng)DB2系統(tǒng)目錄的安全性,成為了我們需要迫切解決的問題。

此文章主要向大家描述的是在實際操作中如何讓DB2系統(tǒng)目錄視圖更加安全,在DB2數(shù)據(jù)庫中系統(tǒng)目錄視圖中主要是保存著數(shù)據(jù)庫各種對象的一些信息。如表與列的定義、各種對象的特權(quán)信息、某個用戶所擁有的特權(quán)信息等等都保存在目錄視圖中。

這個設(shè)計跟Oracle等數(shù)據(jù)庫系統(tǒng)類似。

在DB2系統(tǒng)目錄視圖中保存著數(shù)據(jù)庫各種對象的相關(guān)信息。如表與列的定義、各種對象的特權(quán)信息、某個用戶所擁有的特權(quán)信息等等都保存在目錄視圖中。這個設(shè)計跟Oracle等數(shù)據(jù)庫系統(tǒng)類似。不過在這些目錄視圖的權(quán)限設(shè)計方面有比較大的差異。

一、系統(tǒng)目錄視圖在安全上的隱患。

在Oracle數(shù)據(jù)庫中,也有跟系統(tǒng)目錄視圖類似的設(shè)計。如將相關(guān)的數(shù)據(jù)庫對象以及權(quán)限等信息等存儲在數(shù)據(jù)字典中。但是對于Oracle數(shù)據(jù)庫來說,對于這個數(shù)據(jù)字典相關(guān)的視圖做了相關(guān)的限制。如在Oracle數(shù)據(jù)庫中,將數(shù)據(jù)字典分為user、all、dba三類。一般用戶只能夠使用user或者all數(shù)據(jù)字典視圖。

也就是說,只能夠查詢到自己擁有的對象或者自己擁有特定權(quán)限的對象信息。對于他人建立的對象,或者自己沒有權(quán)查詢的對象信息,一般用戶是查詢不到的。只有像具有數(shù)據(jù)庫管理員等特權(quán)的用戶才可以查詢到全部數(shù)據(jù)庫對象的信息。這在很大程度上保障了數(shù)據(jù)字典視圖的安全性。

但是對于DB2數(shù)據(jù)庫的系統(tǒng)目錄視圖,在這方面做的就不是很到位。如默認(rèn)情況下,在部署DB2數(shù)據(jù)庫的時候,數(shù)據(jù)庫會自動創(chuàng)建系統(tǒng)目錄視圖。而在創(chuàng)建這個系統(tǒng)目錄視圖的時候,系統(tǒng)會將這個目錄視圖的select查詢權(quán)限賦予給public組。將這個目錄視圖賦予給這個組,就以為這數(shù)據(jù)庫系統(tǒng)中的用戶都具有查詢這個系統(tǒng)目錄視圖的權(quán)限。

即使這個對象不是這個用戶所創(chuàng)建的,或者用戶沒有這個對象的訪問權(quán)限,用戶也可以查詢到這個對象的相關(guān)信息,如誰創(chuàng)建了這個對象,誰擁有這個對象的哪些權(quán)限的信息。當(dāng)數(shù)據(jù)庫中數(shù)據(jù)的保密級別或者商業(yè)價值不怎么高的時候,這么設(shè)計不怎么會產(chǎn)生安全問題。#p#

但是,用戶使用起來不方便。如數(shù)據(jù)庫設(shè)計的比較復(fù)雜,有多個管理員同時維護(hù)數(shù)據(jù)庫系統(tǒng)。此時每個數(shù)據(jù)庫管理員之需要查詢到自己所創(chuàng)建的或則具有訪問權(quán)限的相關(guān)信息,而不需要全部的對象信息。顯然憑現(xiàn)在系統(tǒng)目錄視圖的設(shè)計,不能夠做到這一點。

但是如果數(shù)據(jù)庫中的數(shù)據(jù)商業(yè)價值比較高,有很多人虎視眈眈的在打這些數(shù)據(jù)的注意,此時數(shù)據(jù)庫系統(tǒng)對于系統(tǒng)目錄視圖的默認(rèn)權(quán)限設(shè)計,可能就不怎么合適了。因為目錄視圖中存儲的所有對象信息(包括授權(quán)信息)對于所有用戶都是開放的。

這會為黑客或者其他不按好心的用戶竊取相關(guān)的資料提供便利。所以對于安全要求高的企業(yè),在部署DB2數(shù)據(jù)庫的時候,有可能需要更改這些系統(tǒng)目錄視圖的默認(rèn)權(quán)限,以提高目錄視圖中信息的安全性。讓只有相關(guān)的人員才能夠看到目錄視圖中的數(shù)據(jù)庫對象以及權(quán)限等相關(guān)信息。

二、如何提高系統(tǒng)目錄視圖的安全性?

既然數(shù)據(jù)庫系統(tǒng)目錄視圖存在一定的安全隱患,那么該如何提高其安全性呢?筆者對此有兩個建議,各位數(shù)據(jù)庫管理員可以根據(jù)自己的需要來選擇使用。

第一個是比較簡單的處理方法,即從public中撤銷對系統(tǒng)默認(rèn)視圖的select特權(quán)。然后給需要訪問這些信息的用戶再授予他們對于這些系統(tǒng)默認(rèn)視圖的select查詢權(quán)限。在DB2數(shù)據(jù)庫中這些系統(tǒng)目錄視圖也是視圖的一種,所以無論是授權(quán)還是撤銷權(quán)限都是跟其他任何普通視圖的授予與撤銷權(quán)限的方法是一致的。

唯一的區(qū)別就是操作用戶權(quán)限上的區(qū)別。對于普通的視圖,只要視圖的所有者或者具有視圖權(quán)限控制的用戶都可以更改視圖的相關(guān)權(quán)限。而對于DB2系統(tǒng)目錄視圖來說,操作員必須有sysadm或者DBADM的權(quán)限,才能夠更改系統(tǒng)目錄視圖的權(quán)限。即收回某些用戶的特權(quán),或者重新賦予某些用戶具有對系統(tǒng)目錄視圖的查詢權(quán)限。

第二個方法實現(xiàn)起來比較復(fù)雜,但是比較實用。簡單的說,就是按照Oracle數(shù)據(jù)庫系統(tǒng)的解決方式,將系統(tǒng)目錄視圖分為三類。第一類是user系統(tǒng)目錄視圖。即在查詢系統(tǒng)目錄視圖的時,以當(dāng)前用戶為查詢條件,在系統(tǒng)目錄視圖中反映出來的是用戶自己建立的對象。其他用戶建立的對象,即使這個用戶具有查詢或者其他更加高級的權(quán)限,在這個視圖中也無法顯示出來。

這對于用戶維護(hù)自己創(chuàng)建的對象比較方便。第二類視圖是ALL視圖。這個視圖在運行時,也是以當(dāng)前用戶為查詢條件。不過在這個視圖中主要反映兩類信息。一是反映用戶自己所創(chuàng)建的對象,二是當(dāng)前用戶具有查詢等相關(guān)權(quán)限的對象信息。也就說,只要用戶有權(quán)查詢的對象都會在這個類別的系統(tǒng)目錄視圖中列出來。#p#

第三類視圖是DBA視圖,即顯示所有數(shù)據(jù)庫對象以及相關(guān)的授權(quán)信#p#息。這類視圖只有數(shù)據(jù)庫管理員才有查詢權(quán)限,其他用戶不具有這個視圖的查詢權(quán)限。分類分好后,可以先取消所有用戶對系統(tǒng)目錄視圖Select權(quán)限。注意在授權(quán)的時候,不是將系統(tǒng)目錄視圖的查詢權(quán)限賦予給其他的用戶。

而是以系統(tǒng)目錄視圖為基本對象,在此基礎(chǔ)上再根據(jù)上面的分類來建立對應(yīng)的視圖。然后在授權(quán)的時候,筆者是將這些新建立的視圖權(quán)限賦予給相關(guān)的用戶。也就說,用戶并不是直接查詢系統(tǒng)目錄視圖,而是通過查詢數(shù)據(jù)庫管理員所建立的視圖來查詢DB2系統(tǒng)目錄視圖中的相關(guān)內(nèi)容。

這不僅可以在系統(tǒng)目錄視圖與用戶之間多建立一道安全的屏障,而且還可以實現(xiàn)對目錄視圖內(nèi)容更加精細(xì)的控制。為了操作上的方便,筆者建議將建立視圖和賦予權(quán)限的語句保存下來。以后若需要重新部署數(shù)據(jù)庫,或者數(shù)據(jù)庫管理員跳槽后需要維護(hù)一個新的DB2數(shù)據(jù)庫系統(tǒng),那么可以直接通過這個語句來重建相關(guān)的視圖。

如果DB2數(shù)據(jù)庫部署比較簡單,只有一個數(shù)據(jù)庫管理員的話,那么只需要采用第一種簡便的處理方式既可。但是如果DB2數(shù)據(jù)庫應(yīng)用比較復(fù)雜,有多個數(shù)據(jù)庫管理員各司其職,共同負(fù)責(zé)數(shù)據(jù)庫應(yīng)用的時候,筆者建議采用第二種處理方式。添加了過濾條件之后,即可以保障系統(tǒng)目錄視圖數(shù)據(jù)的安全,還方便了用戶的操作。

此時即使某個數(shù)據(jù)庫管理員的帳號與密碼被泄露,那么其最終受影響的也只有這個數(shù)據(jù)庫管理員創(chuàng)建或者擁有查詢等權(quán)限的對象。而不會將其他用戶創(chuàng)建的對象或者這個用戶具有查詢等權(quán)限的對象信息泄露給其他人。其實這第二種方案只是第一次操作的時候比較復(fù)雜。

以后還有機(jī)會再次維護(hù)數(shù)據(jù)庫系統(tǒng)的話,只需要直接執(zhí)行第一次保存下來的SQL語句即可。所以不少有經(jīng)驗的數(shù)據(jù)庫管理員,還都是比較樂于使用第二種解決方案的。因為對于他們來說,可能第二種解決方案比第一種解決方案更加的簡單,使用起來更加的方便。

三、當(dāng)心統(tǒng)計信息泄露機(jī)密。

在系統(tǒng)目錄視圖中,有些列是統(tǒng)計信息列。這些列也比較危險。因為記錄在DB2系統(tǒng)目錄視圖中的某些統(tǒng)計系會含有可能是用戶環(huán)境中的敏感信息的數(shù)據(jù)。如果這些包含用戶環(huán)境中的敏感信息泄露的話,會給黑客等非法攻擊者攻擊數(shù)據(jù)庫提供方便。

這些敏感信息有時候就是他們攻擊數(shù)據(jù)庫的鑰匙。為此對于這些敏感信息,最好需要采取額外的保密措施。如即使這些統(tǒng)計信息用戶有權(quán)查看,因為這個對象就是用戶創(chuàng)建的。但是如果數(shù)據(jù)庫管理員認(rèn)為這個敏感信息對于用戶參與數(shù)據(jù)庫的維護(hù)工作沒有實際的價值,那么最好也屏蔽這些信息。

即通過在列級別上控制用戶查詢這個列的權(quán)限?;蛘哒f在重定義目錄視圖的時候,有意思的像用戶屏蔽這些敏感的信息。最后這些敏感的信息只有數(shù)據(jù)庫管理員一個人可以查詢。這可以作為以上兩個解決方案的輔助措施,來共同保障DB2系統(tǒng)目錄視圖的安全。
 

責(zé)任編輯:段燃 來源: 伊甸網(wǎng)
相關(guān)推薦

2010-09-30 15:35:40

2010-11-03 16:16:09

DB2目錄視圖

2012-11-01 11:27:49

IBMdw

2010-11-02 09:56:14

DB2目錄結(jié)構(gòu)

2010-11-03 16:50:23

DB2目錄結(jié)構(gòu)

2010-11-02 11:56:36

DB2物化視圖

2010-09-30 15:17:17

DB2信息目錄

2010-09-07 15:39:52

DB2創(chuàng)建跨庫視圖

2010-08-27 13:50:12

DB2安全機(jī)制

2010-08-16 17:07:43

DB2 trc

2010-05-07 15:52:28

ibmdwDB2

2010-07-30 17:46:46

DB2物化視圖

2010-08-02 13:25:23

DB2物化視圖

2010-08-27 11:08:59

DB2安裝目錄

2010-09-07 16:11:19

執(zhí)行DB2命令

2011-08-17 21:49:55

建立視圖SQL ServerOracle

2010-08-16 09:39:03

DB2基礎(chǔ)知識DB2c

2010-09-01 09:27:21

DB2表名

2009-06-25 10:30:30

2009-12-16 10:43:52

安裝db2
點贊
收藏

51CTO技術(shù)棧公眾號