#CHAR_TO_LABEL

label_tag
CHAR_TO_LABEL ( policy_name , label_string )

CHAR_TO_LABEL函数返回LBAC安全策略policy_name下标签内容为label_string的标签值。label_string内容必须满足标签内容要求。

若标签内容已存在则直接返回对应的标签值;若标签内容不存在会先自动创建标签,再返回对应的标签值。

该函数仅适用于单机部署中的HEAP表。

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

policy_name

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

label_tring

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

示例(单机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 复制链接