程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle Database 12c Data Redaction介紹,12credaction

Oracle Database 12c Data Redaction介紹,12credaction

編輯:Oracle教程

Oracle Database 12c Data Redaction介紹,12credaction


 

什麼是Data Redaction

Data Redaction是Oracle Database 12c的高級安全選項之中的一個新功能,Oracle中國在介紹這個功能的時候,翻譯為“數據編纂”,在EM12c R3的中文界面中,這個功能被翻譯成“數據編寫”,我認為後一個翻譯更貼切。

在12c發布前,某次以“數據庫安全”為題目的技術交流中,有一個客戶問我們,Oracle數據庫裡面能不能實現這麼一個功能:符合條件的用戶可以看到表裡面的所有數據,而另外一些人(業務權限低的用戶)雖然能查詢表,但是某些敏感數據全部用星號替換。我當時的想法是在11g中沒有能夠完全滿足這個客戶需求的功能。

現在12c的Data Redaction就可以完全滿足上面提到的客戶的需求了。所以如果用一句話概括:Data Redaction就是根據策略(條件)原地(Oracle用了on-the-fly這個詞)改寫數據,以保護敏感數據。

Data Redaction和Database Vault都能保護敏感數據,他們的不同就是,在配置了Database Vault的環境中,如果訪問不符合策略,會報錯,提示沒有足夠的權限。而在Data Redaction環境中,符合策略的訪問,會看到被改寫的(星號遮蔽,隨機轉換)數據。另外,Database Vault還能限制特權用戶,而Data Redaction對DBA用戶無效。

Data Redaction配置

Data Redaction的配置是通過系統系統的PL/SQL包來實現的,簡單的說,就是使用這些PL/SQL包定義“數據改寫”策略,策略中要定義的內容有:

l 敏感數據所對應的SCHEMA,表,列

l 數據編寫生效的條件

l 數據編寫所使用的方式以及對應的參數

這些工作都可以使用PL/SQL包來完成,也可以使用EM12c通過web頁面來配置。下面我們就以EM12c舉例說明。

如果使用圖形界面配置“數據改寫”,需要使用EM12c R3(Oracle Enterprise Manager Cloud Control 12c Release 3),EM Express中沒有對應的功能(11g的DBControl在12c 名字變為EM Express,界面用ADF從新實現的,但是功能似乎更少了)。

1. 登錄EM12c,進入數據庫實例的主頁。我這裡使用的是一個PDB(Pluggable Database),因為這個裡面有示例數據,在CDB(Container Database)中配置的方法是一樣的,需要進入CDB的主頁進行操作。

2. 點擊“管理”-〉“安全性”-〉“Oracle Data Redaction”,如果沒有配置數據庫的身份證明,系統會提示輸入身份證明,我這裡用的是SYS用戶。

clip_image002

3. 進入“數據改寫”頁面,創建策略

clip_image004

選擇方案(SCHEMA),希望改寫的表,策略名:

clip_image006

修改策略表達式,也就是策略的生效條件,我在這裡選擇的是數據庫會話用戶為SCOTT。

clip_image008

在進行下一步之前,我們先要確認敏感數據的格式。在本例中,我們希望將HR用戶下的EMPLOYEES表中的PHONE_NUMBER列進行改寫。這個列的數據形式如下圖所示:

clip_image010

假設我們希望將電話號碼全部用*號代替,只保留前3位。

點擊頁面下方的“對象列”區域的“添加”,在彈出窗口中添加敏感數據列及編寫方式,在界面上也有簡單的示例,如圖所示:

clip_image012

因為要保留前3個電話號碼,所以從第4個字符開始改寫,全部需改寫的字符是10個,中間的“.”不算,所以“直到”第10個字符。

clip_image014

clip_image016

4. 測試策略:

使用SQL*PLUS登錄HR用戶,可以查看所有數據。

clip_image018

使用SCOTT用戶登錄,查看到的是這個樣子:

clip_image020

如果我們把策略生效的條件改為“會話用戶為HR”,那麼即使HR是這個表的OWNER,也只能看到改寫後的數據:

clip_image022

其他類型的策略表達式

現實環境中,許多應用都是使用一個數據庫用戶登錄的,所以數據改寫的生效條件也可以是根據Client端信息或應用程序信息進行判斷。當然,在應用程序中,必須要設置相關的CONTEXT。注意,如果應用的用戶擁有DBA權限,數據改寫就無效了。

clip_image024

我們使用SQL*PLUS模擬應用使用同一個數據庫用戶,利用CONTEXT實現數據改寫。(實際上是不同應用用戶,使用不同的CONTEXT。)

我們使用HR登錄,將MODULE手工設置成“HRMS”。

clip_image026

當我們MODULE設置為其他值時(模擬切換不同類型的應用用戶),則數據改寫策略不生效。

clip_image028

APEX環境下的例子

在安裝了APEX環境的數據庫中,配合APEX使用數據改寫也非常簡單,利用APEX的PL/SQL表達式寫法,引用應用用戶名,以下是例子:

clip_image030

其他用戶登錄應用效果:

clip_image032

Test_user1登錄應用的效果:

clip_image034

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved