日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

DBMS_REDACT

DBMS_REDACT包支持對查詢返回的數據進行脫敏或屏蔽,DBMS_REDACT包提供了創建策略、更改策略、啟用策略、禁用策略和刪除策略的存儲過程,您可以使用這些存儲過程實現自定義的數據混淆。

下表列出了DBMS_REDACT包中可以使用的存儲過程。

存儲過程

返回類型

描述

ADD_POLICY(object_schema, object_name, policy_name, policy_description, column_name, column_description, function_type, function_parameters, expression, enable, regexp_pattern, regexp_replace_string, regexp_position, regexp_occurence, regexp_match_parameter, custom_function_expression)

N/A

在表或視圖上增加數據脫敏策略。

ALTER_POLICY(object_schema, object_name, policy_name, action, column_name, function_type, function_parameters, expression, regexp_pattern, regexp_replace_string, regexp_position, regexp_occurence, regexp_match_parameter, policy_description, column_description, custom_function_expression)

N/A

修改數據脫敏策略。

DISABLE_POLICY(object_schema, object_name, policy_name)

N/A

禁用現有的數據脫敏策略。

ENABLE_POLICY(object_schema, object_name, policy_name)

N/A

啟用數據脫敏策略。

DROP_POLICY(object_schema, object_name, policy_name)

N/A

刪除數據脫敏策略。

UPDATE_FULL_REDACTION_VALUES(number_val, binfloat_val, bindouble_val, char_val, varchar_val, nchar_val, nvarchar_val, datecol_val, ts_val, tswtz_val, blob_val, clob_val, nclob_val)

N/A

變更完全脫敏下不同類型的默認顯示值。

存儲過程

ADD_POLICY

ADD_POLICY為表創建新的數據脫敏策略。

ADD_POLICY (
<object_schema> IN VARCHAR2 DEFAULT NULL,
<object_name> IN VARCHAR2,
<policy_name> IN VARCHAR2,
<policy_description> IN VARCHAR2 DEFAULT NULL,
<column_name> IN VARCHAR2 DEFAULT NULL,
<column_description> IN VARCHAR2 DEFAULT NULL,
<function_type> IN INTEGER DEFAULT DBMS_REDACT.FULL,
<function_parameters> IN VARCHAR2 DEFAULT NULL,
<expression> IN VARCHAR2,
<enable> IN BOOLEAN DEFAULT TRUE,
<regexp_pattern> IN VARCHAR2 DEFAULT NULL,
<regexp_replace_string> IN VARCHAR2 DEFAULT NULL,
<regexp_position> INTEGER DEFAULT DBMS_REDACT.RE_BEGINNING,
<regexp_occurrence> INTEGER DEFAULT DBMS_REDACT.RE_ALL,
<regexp_match_parameter> IN VARCHAR2 DEFAULT NULL,
<custom_function_expression> IN VARCHAR2 DEFAULT NULL
)

參數

參數名稱

描述

object_schema

指定對象所在的模式名稱,不指定則是current_user的默認schema。

object_name

創建數據脫敏策略的表的名稱。

policy_name

需要添加的策略的名稱。每個表上策略名稱不可重復。

policy_description

指定脫敏策略的描述。

column_name

脫敏策略適用的列的名稱。

說明

如果需要脫敏多個列,請使用alter_policy存儲過程添加其他列。

column_description

需要脫敏的列的描述。

說明

目前column_description暫不支持,當您指定列的描述時,將收到一條警告消息。

function_type

要使用的脫敏函數的類型。可能的值如下:

  • NONE:不進行脫敏,對表的查詢結果無影響。

  • FULL:完全脫敏,脫敏列數據的完整值。

  • PARTIAL:部分脫敏,脫敏列數據的一部分。

  • RANDOM:隨機脫敏,根據列的數據類型,每個查詢都會產生不同的隨機值。

  • REGEXP:基于正則表達式的脫敏,搜索需要脫敏的數據模式。

  • CUSTOM:自定義脫敏類型。

function_parameters

指定分區脫敏的函數參數,僅適用于部分脫敏。

expression

指定表的布爾表達式并確定如何應用策略。如果此策略表達式的計算結果為true ,則會使用脫敏策略。

enable

用于控制策略的啟用或禁用。默認為TRUE,取值如下:

  • 設置為TRUE時,策略在創建時啟用。

  • 設置為FALSE時,策略被禁用,但可以通過調用enable_policy過程來啟用策略。

regexp_pattern

指定用于脫敏數據的正則表達式模式。如果regexp_pattern不匹配,則返回NULL。

regexp_replace_string

指定替換字符串值。

regexp_position

指定搜索必須開始的字符位置。默認情況下,函數參數是RE_BEGINNING

regexp_occurrence

指定子字符串的替換出現。

  • 如果常量是RE_ALL,則替換每個匹配的子字符串。

  • 如果常量是RE_FIRST,則替換第一個匹配的子字符串。

regexp_match_parameter

更改函數的默認匹配行為。regexp_match_parameter常量可能的取值如下:

  • RE_CASE_SENSITIVE:通過正則表達式進行匹配時,區分列數據的大小寫。

  • RE_CASE_INSENSITIVE:通過正則表達式進行匹配時,不區分列數據的大小寫。

  • RE_MULTIPLE_LINES:將源字符串視為多行,如果忽略此參數,則表示為單行。

  • RE_NEWLINE_WILDCARD:指定句號.,如果忽略此參數,則句號與換行符不匹配。

  • RE_IGNORE_WHITESPACE:忽略空白字符。

custom_function_expression

僅適用于脫敏的CUSTOM類型。custom_function_expression是一個函數表達式,即具有參數的模式限定函數,例如,schema_name.function_name (argument1, …)允許您使用其脫敏邏輯來脫敏列數據。

ALTER_POLICY

ALTER_POLICY將修改表的現有數據脫敏策略。

ALTER_POLICY (
<object_schema> IN VARCHAR2 DEFAULT NULL,
<object_name> IN VARCHAR2,
<policy_name> IN VARCHAR2,
<action> IN INTEGER DEFAULT DBMS_REDACT.ADD_COLUMN,
<column_name> IN VARCHAR2 DEFAULT NULL,
<function_type> IN INTEGER DEFAULT DBMS_REDACT.FULL,
<function_parameters> IN VARCHAR2 DEFAULT NULL,
<expression> IN VARCHAR2 DEFAULT NULL,
<regexp_pattern> IN VARCHAR2 DEFAULT NULL,
<regexp_replace_string> IN VARCHAR2 DEFAULT NULL,
<regexp_position> IN INTEGER DEFAULT DBMS_REDACT.RE_BEGINNING,
<regexp_occurrence> IN INTEGER DEFAULT DBMS_REDACT.RE_ALL,
<regexp_match_parameter> IN VARCHAR2 DEFAULT NULL,
<policy_description> IN VARCHAR2 DEFAULT NULL,
<column_description> IN VARCHAR2 DEFAULT NULL,
<custom_function_expression> IN VARCHAR2 DEFAULT NULL
)

參數

參數名稱

描述

object_schema

指定對象所在的模式名稱,以及在該對象上的策略所在的模式名稱。不指定則是current_user的默認schema。

object_name

需要更改數據脫敏策略的表的名稱。

policy_name

需要更改的策略的名稱。

action

需要執行的操作。

column_name

脫敏策略適用的列的名稱。

function_type

需要使用的脫敏函數的類型。可能的值如下:

  • NONE:不進行脫敏,對表的查詢結果無影響。

  • FULL:完全脫敏,脫敏列數據的完整值。

  • PARTIAL:部分脫敏,脫敏列數據的一部分。

  • RANDOM:隨機脫敏,根據列的數據類型,每個查詢都會產生不同的隨機值。

  • REGEXP:基于正則表達式的脫敏,搜索需要脫敏的數據模式。

  • CUSTOM:自定義脫敏類型。

function_parameters

指定脫敏函數的函數參數。

expression

指定表的布爾表達式并確定如何應用策略。如果此策略表達式的計算結果為TRUE,則會發生脫敏策略.

regexp_pattern

允許使用正則表達式來脫敏數據。如果regexp_pattern與數據不匹配,則

返回NULL。

regexp_replace_string

指定替換字符串值。

regexp_position

指定搜索必須開始的字符位置。默認情況下,函數參數是RE_BEGINNING。

regexp_occurence

指定子字符串的替換出現。

  • 如果常量是RE_ALL,則替換每個匹配的子字符串。

  • 如果常量是RE_FIRST,則替換第一個匹配的子字符串。

regexp_match_parameter

更改函數的默認匹配行為。regexp_match_parameter可能的常量如下:

    • RE_CASE_SENSITIVE:通過正則表達式進行匹配時,區分列數據的大小寫。

    • RE_CASE_INSENSITIVE:通過正則表達式進行匹配時,不區分列數據的大小寫。

    • RE_MULTIPLE_LINES:將源字符串視為多行,如果忽略此參數,則表示為單行。

    • RE_NEWLINE_WILDCARD:指定句號.,如果忽略此參數,則句號與換行符不匹配。

    • RE_IGNORE_WHITESPACE:忽略空白字符。

policy_description

指定脫敏策略的描述。

column_description

需要脫敏的列的描述。

說明

目前column_description暫不支持,如果您指定列的描述,您將收到一條警告消息。

custom_function_expression

custom_function_expression僅適用于脫敏CUSTOM類型。custom_function_expression是一個函數表達式,即具有參數的模式限定函數,例如,schema_name.function_name (argument1, …)允許您使用其脫敏邏輯來脫敏列數據。

DISABLE_POLICY

DISABLE_POLICY禁用現有的數據脫敏策略。

DISABLE_POLICY (
<object_schema> IN VARCHAR2 DEFAULT NULL,
<object_name> IN VARCHAR2,
<policy_name> IN VARCHAR2
)

參數

參數名稱

描述

object_schema

指定對象所在的模式名稱,以及該對象上的策略所在的模式名稱。不指定則是current_user的默認schema。

object_name

需要禁用數據脫敏策略的表的名稱。

policy_name

需要禁用的策略的名稱。

ENABLE_POLICY

ENABLE_POLICY啟用先前禁用的數據脫敏策略。

ENABLE_POLICY (
<object_schema> IN VARCHAR2 DEFAULT NULL,
<object_name> IN VARCHAR2,
<policy_name> IN VARCHAR2
)

參數

參數名稱

描述

object_schema

指定對象所在的模式名稱,以及該對象上的策略所在的模式名稱。不指定則是current_user的默認schema。

object_name

需要對其啟用數據脫敏策略的表的名稱。

policy_name

需要啟用的策略的名稱。

DROP_POLICY

DROP_POLICY通過從表中刪除屏蔽策略來刪除數據脫敏策略。

DROP_POLICY(
<object_schema> IN VARCHAR2 DEFAULT NULL,
<object_name> IN VARCHAR2,
<policy_name> IN VARCHAR2
)

參數

參數名稱

描述

object_schema

指定對象所在的schema名稱,以及將應用數據脫敏策略的schema名稱。不指定則是current_user的默認schema。

object_name

需要從表中刪除數據脫敏策略的表的名稱。

policy_name

需要刪除的策略的名稱。

UPDATE_FULL_REDACTION_VALUES

UPDATE_FULL_REDACTION_VALUES更新數據脫敏策略的默認顯示值,并且可以通過redaction_values_for_type_full視圖查看這些默認值。

UPDATE_FULL_REDACTION_VALUES (
<number_val> IN NUMBER DEFAULT NULL,
<binfloat_val> IN FLOAT4 DEFAULT NULL,
<bindouble_val> IN FLOAT8 DEFAULT NULL,
<char_val> IN CHAR DEFAULT NULL,
<varchar_val> IN VARCHAR2 DEFAULT NULL,
<nchar_val> IN NCHAR DEFAULT NULL,
<nvarchar_val> IN NVARCHAR2 DEFAULT NULL,
<datecol_val> IN DATE DEFAULT NULL,
<ts_val> IN TIMESTAMP DEFAULT NULL,
<tswtz_val> IN TIMESTAMPTZ DEFAULT NULL,
<blob_val> IN BLOB DEFAULT NULL,
<clob_val> IN CLOB DEFAULT NULL,
<nclob_val> IN CLOB DEFAULT NULL
)

參數

參數名稱

描述

number_val

更新NUMBER數據類型的默認值。

binfloat_val

更新的值可以是FLOAT4數據類型的任意值。目前暫不支持二進制浮點數據類型。

bindouble_val

更新的值可以是FLOAT8數據類型的任意值。目前暫不支持二進制雙精度數據類型。

char_val

更新CHAR數據類型的默認值。

varchar_val

更新VARCHAR2數據類型的默認值。

nchar_val

nchar_val映射到CHAR數據類型并返回CHAR值。

nvarchar_val

nvarchar_val映射到VARCHAR2數據類型并返回VARCHAR值。

datecol_val

更新DATE數據類型的默認值。

ts_val

更新TIMESTAMP數據類型的默認值。

tswtz_val

更新TIMESTAMPTZ數據類型的默認值。

blob_val

更新BLOB數據類型的默認值。

clob_val

更新CLOB數據類型的默認值。

nclob_val

nclob_val映射到CLOB數據類型并返回CLOB值。

示例

ADD_POLICY

通過對表添加策略,使得其他用戶訪問該表時數據發生混淆。

  1. 準備測試數據,創建測試表格payment_details_tab與測試用戶redact_user。

    ---創建測試表格payment_details_tab
    CREATE TABLE payment_details_tab (
     customer_id NUMBER NOT NULL, 
     card_string VARCHAR2(19) NOT NULL);
    INSERT INTO payment_details_tab VALUES (4001,'2345-2345-2345-2345');
    
    ---創建測試用戶redact_user并授權
    CREATE USER redact_user PASSWORD '1234';
    GRANT SELECT ON payment_details_tab TO redact_user;
  2. 執行如下語句,對測試表格payment_details_tab添加策略。

    CALL DBMS_REDACT.add_policy(
      object_schema => 'public', 
      object_name => 'payment_details_tab', 
      policy_name => 'redactPolicy_001', 
      policy_description => 'redactPolicy_001 for payment_details_tab table', 
      column_name => 'customer_id', 
      function_type => DBMS_REDACT.full, 
      expression => '1=1', 
      enable => TRUE 
    );
  3. 執行如下語句,切換至測試用戶redact_user,并查詢表格。

    ---切換連接數據庫用戶
    \c - redact_user
    
    ---執行如下查詢語句
    SELECT customer_id from payment_details_tab order by 1;

    查詢語句返回結果如下:

     customer_id 
    -------------
               0
    (1 row)

ALTER_POLICY

通過變更policy的定義,對要顯示的字符串數據進行脫敏處理。

  1. 執行如下語句,變更測試表格payment_details_tab策略的定義。

    CALL DBMS_REDACT.alter_policy(
      object_schema => 'public', 
      object_name => 'payment_details_tab', 
      policy_name => 'redactPolicy_001',
      action => DBMS_REDACT.ADD_COLUMN,
      column_name => 'card_string', 
      function_type => DBMS_REDACT.partial, 
      function_parameters => DBMS_REDACT.REDACT_CCN16_F12
    );
  2. 執行如下語句,切換至測試用戶redact_user,并查詢表格。

    ---切換連接數據庫用戶
    \c - redact_user
    
    ---執行如下查詢語句
    SELECT * FROM payment_details_tab;

    查詢語句返回結果如下:

     customer_id |     card_string     
    -------------+---------------------
               0 | ****-****-****-2345
    (1 row)

DISABLE_POLICY

通過關閉policy,使得其他用戶可以查看正常的表數據。

  1. 執行如下語句,關閉測試表格payment_details_tab上的策略。

    CALL DBMS_REDACT.disable_policy(
      object_schema => 'public', 
      object_name => 'payment_details_tab', 
      policy_name => 'redactPolicy_001'
    );
  2. 執行如下語句,切換至測試用戶redact_user,并查詢表格。

    ---切換連接數據庫用戶
    \c - redact_user
    
    ---執行如下查詢語句
    SELECT * FROM payment_details_tab;

    查詢語句返回結果如下:

     customer_id |     card_string     
    -------------+---------------------
            4001 | 2345-2345-2345-2345
    (1 row)

ENABLE_POLICY

通過重新啟用policy,使得policy對其他用戶生效。

  1. 執行如下語句,重新啟用測試表格payment_details_tab上的策略。

    CALL DBMS_REDACT.enable_policy(
      object_schema => 'public', 
      object_name => 'payment_details_tab', 
      policy_name => 'redactPolicy_001'
    );
  2. 執行如下語句,切換至測試用戶redact_user,并查詢表格。

    ---切換連接數據庫用戶
    \c - redact_user
    
    ---執行如下查詢語句
    SELECT * FROM payment_details_tab;

    查詢語句返回結果如下:

     customer_id |     card_string     
    -------------+---------------------
               0 | ****-****-****-2345
    (1 row)

DROP_POLICY

通過DROP_POLICY,移除表上的脫敏策略。

  1. 執行如下語句,刪除測試表格payment_details_tab上的策略。

    CALL DBMS_REDACT.drop_policy(
      object_schema => 'public', 
      object_name => 'payment_details_tab', 
      policy_name => 'redactPolicy_001'
    );
  2. 執行如下語句,切換至測試用戶redact_user,并查詢表格。

    ---切換連接數據庫用戶
    \c - redact_user
    
    ---執行如下查詢語句
    SELECT * FROM payment_details_tab;

    查詢語句返回結果如下:

     customer_id |     card_string     
    -------------+---------------------
            4001 | 2345-2345-2345-2345
    (1 row)

UPDATE_FULL_REDACTION_VALUES

通過變更某一類型的脫敏值,來替換將要混淆的數據。例如,將混淆數據由0變為9999999。

說明

以下操作需要使用超級用戶執行,如您有相應場景,請聯系我們處理。

  1. 執行如下語句,變更測試表格payment_details_tab上的脫敏值,用于替換將要混淆的數據。

    CALL DBMS_REDACT.update_full_redaction_values (
      number_val => 9999999,
      char_val => 'Z',
      varchar_val => 'V',
      datecol_val => to_date('17/10/2023', 'DD/MM/YYYY'),
      ts_val => to_timestamp('17/10/2023 11:12:13', 'DD/MM/YYYY HH24:MI:SS'),
      tswtz_val => NULL,
      blob_val => 'NEW REDACTED VALUE',
      clob_val => 'NEW REDACTED VALUE'
    );
  2. 執行如下語句,切換至測試用戶redact_user,并查詢表格。

    ---切換連接數據庫用戶
    \c - redact_user
    
    ---執行如下查詢語句
    SELECT * FROM payment_details_tab;

    查詢語句返回結果如下:

     customer_id |     card_string     
    -------------+---------------------
         9999999 | 2345-2345-2345-2345
    (1 row)