LABEL_STR_CMP
📄字数 700
👁️阅读量 加载中...
功能描述
比较两个安全标签的 LEVEL
与 CATEGORY
之间的包含关系。
语法格式
sql
LABEL_STR_CMP(expr1, expr2, expr3)
输入参数
expr1
:VARCHAR
类型或者能隐式转换为VARCHAR
类型的其他类型的值,策略名称。expr2
:VARCHAR
类型或者能隐式转换为VARCHAR
类型的其他类型的值,标签字符串。expr3
:VARCHAR
类型或者能隐式转换为VARCHAR
类型的其他类型的值,标签字符串。
输出结果
INTEGER
数值类型,返回结果如下:
- 输入参数为
NULL
时,输出结果为NULL
。 - 返回值为
0
,表示两个安全标签完全相同(相同指的是等级(level)
相同且类别(category)
集合完全一致)。 - 返回值为
1
,expr1
的LEVEL
不低于expr2
,且其类别集合包含expr2
的全部类别。 - 返回值为
-1
,表示expr1
的等级低于expr2
或expr1
类别不包含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 |
+-------+