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 |
+-------+