Oracle Data Redaction實驗記錄
Oracle從11.2.0.4以後新增了資料校訂作為一個新的安全特性。Oracle Data Redaction(Oracle資料校訂),它提供了一個有效且易於實現的方法來遮蔽敏感資訊。該工具能夠實時地從資料校訂得出的查詢結果會返回到它們原來的應用程式。當你想要隱藏一個欄位的所有值或部分值,但同時還要為使用者提供他們需要的資訊的時候,Data Redaction便有了用武之地。諸如社會保險號,信用卡號和客戶端IP地址之類的個人標識未經許可是不能釋出的。通過允許你隱藏個人資訊並同時仍允許訪問關
鍵檔案,Data Redaction將幫助你遵循法規和行業標準,同時保證不中斷業務的正常流程。
鍵檔案,Data Redaction將幫助你遵循法規和行業標準,同時保證不中斷業務的正常流程。
下面以TT.DEPT表為例,對DNAME列進行data redaction,這意味著除了TT自己,其它使用者在對tt.dept表進行查詢時將看不會看到真實資料(當然這不包括SYS及SYSTEM使用者),以下是我的操作記錄:
登入Cloud Control 12c,選擇測試資料庫-->Security-->Data Redaction
在Data Redaction頁面中點選Create按鈕,新建一個Data Redaction Policies
這裡我選擇對TT.DEPT表進行data redaction. 在策略中我寫入的是該策略對非TT使用者生效。
點選上面的Edit按鈕後,選擇ADD新增DNAME列。
點選OK按鈕以後,Data Redaction Policy就建立好了,下面通過查詢具體驗證下效果。
--TT使用者登入後可以檢視真實的資料
TT@BWC2(dm02db02)> show user
USER is "TT"
TT@BWC2(dm02db02)> select * from tt.dept;
DEPTNO DNAME LOC
---------- ---------- --------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
USER is "TT"
TT@BWC2(dm02db02)> select * from tt.dept;
DEPTNO DNAME LOC
---------- ---------- --------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
--T2使用者登入後,雖然對tt.dept表有查詢許可權,但他看到的DNAME列卻為空,並不是真實的資料。
SYS@BWC2(dm02db02)> conn t2/t2
Connected.
SYS@BWC2(dm02db02)> select * from tt.dept;
DEPTNO DNAME LOC
---------- ---------- --------------------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON
Connected.
SYS@BWC2(dm02db02)> select * from tt.dept;
DEPTNO DNAME LOC
---------- ---------- --------------------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON
如果沒有Cloud Control 12c的環境,還是通過PLSQL方式來管理data redaction的,下面是一些記錄:
--有關data redaction的幾個檢視
REDACTION_COLUMNS
REDACTION_POLICIES
REDACTION_VALUES_FOR_TYPE_FULL
insert into employee values(1,'tom',6000,to_date('01-07-2012','dd-mm-yyyy'),'135-2009-1146');
insert into employee values(2,'mary',9000,to_date('01-07-2013','dd-mm-yyyy'),'135-2009-1111');
commit;
select * from employee;
--針對NUMBER型別的列進行redaction
begin
dbms_redact.add_policy(
object_schema=>'tt',
object_name=>'employee',
policy_name=>'p1',
column_name=>'salary',
function_type=>dbms_redact.full,
enable=>true,
expression=>'1=1');
end;
/
--針對varchar2型別的列進行redaction
begin
dbms_redact.alter_policy(
object_schema=>'tt',
object_name=>'employee',
policy_name=>'p1',
column_name=>'name',
action=>dbms_redact.add_column,
function_type=>dbms_redact.full,
expression=>'1=1');
end;
/
--針對date型別的列進行redaction
begin
dbms_redact.alter_policy(
object_schema=>'tt',
object_name=>'employee',
policy_name=>'p1',
column_name=>'jobdate',
action=>dbms_redact.add_column,
function_type=>dbms_redact.full,
expression=>'1=1');
end;
/
--新增一條策略,使不是TT的使用者檢視該表時資料被redaction
begin
dbms_redact.alter_policy(
object_schema=>'tt',
object_name=>'employee',
policy_name=>'p1',
action=>dbms_redact.modify_expression,
expression=>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') != ''TT''');
end;
/
刪除遮罩保護策略
EXEC DBMS_REDACT.DROP_POLICY('TT','EMPLOYEE','p1');
啟用遮罩保護策略
EXEC DBMS_REDACT.ENABLE_POLICY ('TT','EMPLOYEE','p1');
禁用遮罩保護策略
EXEC DBMS_REDACT.DISABLE_POLICY ('TT','EMPLOYEE','p1');
--通過授予以下許可權達到訪問真實資料目的
SQL> grant exempt redaction policy to user1;
Grant succeeded.
SQL> revoke exempt redaction policy from user1;
Revoke succeeded.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26753337/viewspace-2121057/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181018]Oracle Database 12c: Data Redaction.txtOracleDatabase
- 大資料實驗記錄大資料
- mysql load 相關實驗記錄MySql
- 2 開始實用 Oracle Data GuardOracle
- STM32F207DAC實驗記錄
- SEO 經驗記錄
- overlay網路隔離實驗失敗記錄
- 《learn to count everything》論文閱讀、實驗記錄
- Oracle實驗(04):floatOracle
- Oracle data link建立Oracle
- 4.1.6 Oracle Restart 與 Oracle Data Guard 整合OracleREST
- Oracle Data Guard Broker元件Oracle元件
- Oracle Data Guard簡介Oracle
- STM32F207串列埠實驗記錄串列埠
- 記錄一次Springboot Data Jdbc的autoWorkController異常Spring BootJDBCController
- Oracle實驗(01):字元 & 位元組Oracle字元
- Oracle實驗(03):number的使用Oracle
- 1 關於 Oracle Data GuardOracle
- 2 Oracle Data Guard 安裝Oracle
- 1 Oracle Data Guard Broker 概念Oracle
- Oracle Data Guard和Broker概述Oracle
- oracle awr快照點不記錄問題Oracle
- Oracle資料泵(Oracle Data Pump) 19cOracle
- 【ASK_ORACLE】Oracle Data Guard(一)DG架構Oracle架構
- 專案重構經驗記錄
- Laravel 使用個人經驗記錄Laravel
- Oracle實驗(02):轉換 & 轉譯Oracle
- Oracle實驗(05):時間型別Oracle型別
- 【Oracle 恢復表空間】 實驗Oracle
- 實驗 20:備忘錄模式模式
- Oracle遊標遍歷%rowtype中的記錄Oracle
- Oracle 41億資料量表建立索引記錄Oracle索引
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- ORACLE SELECT INTO NO_DATA_FOUND問題Oracle
- Step by Step Data Replication Using Oracle GoldenGateOracleGo
- 8 Oracle Data Guard Broker 屬性Oracle
- 9 Oracle Data Guard 故障診斷Oracle
- oracle data Format Models---二(轉)OracleORM
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive