#SA_LABEL_ADMIN

SA_LABEL_ADMIN包提供了一组内置子程序,用于创建、删除LBAC标签策略中的标签。

  • 该高级包不适用于存算一体分布式集群部署。

  • 执行该高级包的用户需具备LBAC_DBA角色。

# CREATE_LABEL

SA_LABEL_ADMIN.CREATE_LABEL (
    policy_name IN VARCHAR,
    label_tag IN BINARY_INTEGER,
    label_value IN VARCHAR,
    data_label IN BOOLEAN DEFAULT TRUE);

此存储过程用于为已有的LBAC标签策略创建标签。

Note:

标签会占用一定的会话栈内存、堆内存,如需创建大量的标签,建议合理配置相应的内存参数WORK_AREA_POOL_SIZE、WORK_AREA_STACK_SIZE以及WORK_AREA_HEAP_SIZE的值以便预分配更多的内存空间。

参数 描述
policy_name 待操作的目标LBAC标签策略的名称,可通过DBA_SA_POLICIES视图的POLICY_NAME字段获取策略名称
label_tag 标签的标识值,全库唯一,取值区间为[1,99999999]
若通过CHAR_TO_LABEL函数自动创建标签,其标签标识值区间为[1000000000,4000000000]
label_value 标签内容,由等级、范围的短名称组成
同一类型的短名称间使用逗号(,)隔开,不同类型的短名称间使用冒号(:)隔开,格式为:等级1短名,…,等级n短名:范围1短名,…,范围m短名
data_label 标识该标签是否为数据标签,默认为TRUE

标签格式:

级别名 + ':' + [范围名, ...]

示例(单机部署、共享集群)

BEGIN
    SA_LABEL_ADMIN.CREATE_LABEL ('lbac_policy', 1001, 'GENERAL:MNG');
END;
/

# DROP_LABEL

SA_LABEL_ADMIN.DROP_LABEL (
    policy_name IN VARCHAR,
    label_tag IN BINARY_INTEGER);

此存储过程用于从已有的LBAC标签策略中删除标签。

Caution:

删除标签前请确保目标标签未被任何数据行使用(可通过DBA_SA_TABLE_POLICIES视图查看目标策略已应用于哪些表,再查看此类表的策略列值是否存在目标标签值),否则标签删除后对应的数据行将仅允许sys用户读写。

参数 描述
policy_name 待操作的目标LBAC标签策略的名称,可通过DBA_SA_POLICIES视图的POLICY_NAME字段获取策略名称
label_tag 目标策略中待删除的标签的标识值,可通过DBA_SA_LABELS视图的LABEL_TAG字段获取标签的标识值

示例(单机部署、共享集群)

BEGIN
  SA_LABEL_ADMIN.DROP_LABEL ('lbac_policy', 1001);
END;
/

pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流