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 | 要使用的脱敏函数的类型。可能的值如下:
|
function_parameters | 指定分区脱敏的函数参数,仅适用于部分脱敏。 |
expression | 指定表的布尔表达式并确定如何应用策略。如果此策略表达式的计算结果为true ,则会使用脱敏策略。 |
enable | 用于控制策略的启用或禁用。默认为TRUE,取值如下:
|
regexp_pattern | 指定用于脱敏数据的正则表达式模式。如果regexp_pattern不匹配,则返回NULL。 |
regexp_replace_string | 指定替换字符串值。 |
regexp_position | 指定搜索必须开始的字符位置。默认情况下,函数参数是RE_BEGINNING 。 |
regexp_occurrence | 指定子字符串的替换出现。
|
regexp_match_parameter | 更改函数的默认匹配行为。regexp_match_parameter常量可能的取值如下:
|
custom_function_expression | 仅适用于脱敏的CUSTOM类型。custom_function_expression是一个函数表达式,即具有参数的模式限定函数,例如, |
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 | 需要使用的脱敏函数的类型。可能的值如下:
|
function_parameters | 指定脱敏函数的函数参数。 |
expression | 指定表的布尔表达式并确定如何应用策略。如果此策略表达式的计算结果为TRUE,则会发生脱敏策略. |
regexp_pattern | 允许使用正则表达式来脱敏数据。如果regexp_pattern与数据不匹配,则 返回NULL。 |
regexp_replace_string | 指定替换字符串值。 |
regexp_position | 指定搜索必须开始的字符位置。默认情况下,函数参数是RE_BEGINNING。 |
regexp_occurence | 指定子字符串的替换出现。
|
regexp_match_parameter | 更改函数的默认匹配行为。regexp_match_parameter可能的常量如下:
|
policy_description | 指定脱敏策略的描述。 |
column_description | 需要脱敏的列的描述。 说明 目前column_description暂不支持,如果您指定列的描述,您将收到一条警告消息。 |
custom_function_expression | custom_function_expression仅适用于脱敏CUSTOM类型。custom_function_expression是一个函数表达式,即具有参数的模式限定函数,例如, |
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
通过对表添加策略,使得其他用户访问该表时数据发生数据混淆。
ALTER_POLICY
通过变更policy的定义,对要显示的字符串数据进行脱敏处理。
DISABLE_POLICY
通过关闭policy,使得其他用户可以查看正常的表数据。
ENABLE_POLICY
通过重新启用policy,使得policy对其他用户生效。
DROP_POLICY
通过DROP_POLICY,移除表上的脱敏策略。
UPDATE_FULL_REDACTION_VALUES
通过变更某一类型的脱敏值,来替换将要混淆的数据。例如,将混淆数据由0变为9999999。
- 本页导读 (0)