Oracle DV和OLS以及VPD的區別(轉)

tingsheng發表於2011-10-20
Database Vault概述
對於現在資料的許可權和安全管理有一個基本的原則就是分離權責,即IT系統的超級使用者不應該同時又是應用系統的超級使用者,但是傳統的資料庫體系結構卻並不支 持這樣的分離,因為DBA使用者一般都能夠檢視和修改資料庫裡的任何資料,這就使DBA使用者也同時成為了企業資料安全的薄弱環節。當然也可以使用某種加密算 法來加密資料從而防止超級使用者檢視修改資料,但是這樣做也有相應的缺點,一是所有使用者(包括有許可權使用者)想看資料的時候都要經過解密;二是一般而言加密會 多少影響程式的效能。Oracle 的Database Vault就是為了解決DBA使用者(或者其他超級使用者)的安全問題而設計出來的。

下面通過一個簡單的例子來說明DatabaseVault的一個簡單的思想:在DatabaseVault的設計裡,一旦對某一個應用使用了 DatabaseVault選項,則SYSTEM/SYS只擁有對sys的超級使用者許可權(也就是說DBA可以管理資料庫),但是卻沒有對其他使用者下的資料 的操作檢視權力(除非把DBA使用者顯示地增加到其他應用的授權區域(REALMS))。這樣,每一個應用都擁有自己資料的超級使用者,該應用的超級使用者可以 修改檢視自己的資料,卻不能檢視別的應用的資料,甚至連DBA使用者都不能檢視其他應用的資料。

如上圖所示:SYSTEM可以操作sys下的物件,可以管理資料庫,比如增加資料檔案等,但是一旦他想檢視HR資料和SALES資料,則會給 DatabaseVault阻擋;同樣的,HR應用和SALES應用的DBA擁有自己資料的操作許可權,卻無法操作別的應用的資料。這樣就達到了權責的分 離。

DatabaseVault和VPD(虛擬資料庫),OLS(Label Security)的區別

VPD是Oracle資料庫裡最早出現帶來額外資料安全的選項,VPD在做託管的應用裡,不同使用者的資料都存在同一個表裡,但是VPD自動給該使用者發出的 SQL語句增加一個where條件(類似於where username=:sessionusername的方式)來達到不同的使用者檢視同一個表不同部分的目的。
而OLS(標籤安全選項)則提供了更加細緻的授權方式,通過對每一列資料加註標籤,並給使用者規定組(group),部門(compartment)等,可以提供組,部門和資料標籤之間的訪問控制關係,比VPD提供了更加複雜的許可權模型。
但是DatabaseVault和VPD已經OLS都不一樣,DatabaseVault是把整個表物件和對該表能使用的命令置於一個被保護的“城堡”當 中,而不是作用於一個表的單獨的行。只有被授權進入城堡的人才可以使用特定的命令操作該物件,而“城堡”外的人(即使是DBA)也不能使用某個被包含的特 定命令操作該物件。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7734298/viewspace-709421/,如需轉載,請註明出處,否則將追究法律責任。

相關文章