#CHAR_TO_LABEL

char_to_label
CHAR_TO_LABEL ( policy_name , label_string )

CHAR_TO_LABEL函数用于获取LBAC标签策略中指定标签内容所对应的标签值。

若指定的标签内容已存在则直接返回对应的标签值,若指定的标签内容不存在会先自动创建新的标签再返回对应的标签值(自动创建的标签值区间为[1000000000,4000000000])。

本函数仅适用于HEAP表。

使用本函数可能需要调用YLS_ENFORCEMENTSA_SYSDBASA_COMPONENTSSA_LABEL_ADMIN等内置高级包,相关权限要求和使用约束还会受限于相应的内置高级包。

policy_name

LBAC标签策略名称,策略名称大小写不敏感,可查询DBA_SA_POLICIES视图获取。

label_string

标签内容,必须符合标签格式要求且对应的组件均存在,标签内容大小写不敏感。

示例(HEAP表)

-- 打开LBAC
CALL YLS_ENFORCEMENT.ENABLE_YLS;
-- 创建LBAC标签策略
CALL SA_SYSDBA.CREATE_POLICY('lbac_policy', 'policy_column');
-- 创建LBAC等级
CALL SA_COMPONENTS.CREATE_LEVEL( 'lbac_policy', 10, 'GENERAL', 'GENERAL');
CALL SA_COMPONENTS.CREATE_LEVEL ( 'lbac_policy', 20, 'SENS', 'SENS');
CALL SA_COMPONENTS.CREATE_LEVEL ( 'lbac_policy', 30, 'SECRET', 'SECRET');
-- 创建LBAC区间
CALL SA_COMPONENTS.CREATE_COMPARTMENT ( 'lbac_policy', 10, 'MNG', 'MNG');
CALL SA_COMPONENTS.CREATE_COMPARTMENT ( 'lbac_policy', 20, 'QA', 'QA');
CALL SA_COMPONENTS.CREATE_COMPARTMENT ( 'lbac_policy', 30, 'RD', 'RD');
CALL SA_COMPONENTS.CREATE_COMPARTMENT ( 'lbac_policy', 40, 'TEST', 'TEST');
-- 创建标签
CALL SA_LABEL_ADMIN.CREATE_LABEL ('lbac_policy', 1001, 'GENERAL:MNG');

SELECT CHAR_TO_LABEL('lbac_policy', 'general:mng') label_tag FROM DUAL;
            LABEL_TAG 
--------------------- 
                 1001

-- 删除策略
CALL SA_SYSDBA.DROP_POLICY('lbac_policy', TRUE);
-- 关闭LBAC
CALL YLS_ENFORCEMENT.DISABLE_YLS;
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流