Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


LABEL_STR_CMP

📄字数 700
👁️阅读量 加载中...

功能描述

比较两个安全标签的 LEVELCATEGORY 之间的包含关系。

语法格式

sql
LABEL_STR_CMP(expr1, expr2, expr3)

输入参数

  • expr1VARCHAR类型或者能隐式转换为 VARCHAR 类型的其他类型的值,策略名称。
  • expr2VARCHAR类型或者能隐式转换为 VARCHAR 类型的其他类型的值,标签字符串。
  • expr3VARCHAR类型或者能隐式转换为 VARCHAR 类型的其他类型的值,标签字符串。

输出结果

INTEGER 数值类型,返回结果如下:

  • 输入参数为 NULL 时,输出结果为 NULL
  • 返回值为 0,表示两个安全标签完全相同(相同指的是等级 (level) 相同且类别 (category) 集合完全一致)。
  • 返回值为 1expr1LEVEL 不低于 expr2,且其类别集合包含 expr2 的全部类别。
  • 返回值为 -1,表示 expr1 的等级低于 expr2expr1 类别不包含 expr2 的类别。

示例

sql
-- 登录安全员(SYSSSO)创建安全策略
SQL> CREATE POLICY sso_policy_new ADD LEVEL LEVEL_1 AS 10,ADD CATEGORY CATEGORY1;

-- 为安全标签增加CATEGORY
SQL> ALTER POLICY sso_policy_new ADD CATEGORY pol1, ADD CATEGORY pol2, ADD CATEGORY pol3, ADD CATEGORY pol4, ADD CATEGORY pol5,ADD CATEGORY pol6;

-- 比较两个安全标签的 LEVEL 与 CATEGORY 之间的包含关系
SQL> SELECT LABEL_STR_CMP('sso_policy_new','POL1','POL2') FROM dual;

+-------+
| EXPR1 |
+-------+
|  -1   |
+-------+