Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


LABEL_CMP

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

功能描述

比较两个安全标签编码值。

语法格式

sql
LABEL_CMP(expr1,expr2)

输入参数

  • expr1BIGINT类型或者能隐式转换为 BIGINT 类型的其他类型的值,安全标签编码。
  • expr2BIGINT类型或者能隐式转换为 BIGINT 类型的其他类型的值,安全标签编码。

输出结果

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

  • 输入参数为 NULL 时,输出结果为 NULL
  • 返回值为 0,表示两个安全标签完全相同。
  • 返回值为 1,表示 expr1 中的标签包含 expr2 中的标签。
  • 返回值为 -1,表示 expr1 中的标签不包含 expr2 中的标签。

示例

sql
-- 登录普通用户创建测试表
SQL> CREATE TABLE TAB1(D1 INT);

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

-- 给表tab1增加安全策略,需要安全员用户操作
SQL> ALTER TABLE POLICY sysdba.tab1 ADD sso_policy_new COLUMN D2 HIDE LABEL 'level_1:category1';

-- 将安全策略从字符串转为内部标签值
SQL> SELECT LABEL_FROM_CHAR('sso_policy_new', 'level_1:category1') FROM dual;

+------------------+
|       EXPR1      |
+------------------+
| 2814749767106561 |
+------------------+

-- 比较两个安全标签编码值
SQL> SELECT LABEL_CMP(2814749767106561, 2814749767106561) FROM dual;

+-------+
| EXPR1 |
+-------+
| 0     |
+-------+