CREATE RESOURCE LABEL

说明

创建资源标签

语法

create_resource_label ::=

参数

IF NOT EXISTS

当不存在一个同名的标签时,正常情况下会报 ERROR,添加该关键字后改为报 NOTICE。

label_name

资源标签名称,创建时要求不能与已有标签重名。

column_path

列名的路径(例如:sysdba.tab.col1)。

示例

示例1: 创建资源标签(不包含列信息)

-- 切换到 SYSSECURE 用户
CONNECT syssecure/szoscar55;

--  清理环境
DROP RESOURCE LABEL label_mask1;

-- 创建空的资源标签
CREATE RESOURCE LABEL label_mask1;


SELECT MASKLABELNAME, MASKNAMESPACEID, MASKRELATIONID, MASKCOLUMNNAME FROM SYS_MASK_LABEL WHERE MASKLABELNAME = 'LABEL_MASK1' ORDER BY MASKLABELNAME, MASKNAMESPACEID, MASKRELATIONID, MASKCOLUMNNAME;
MASKLABELNAME(name)      |MASKNAMESPACEID(OID)      |MASKRELATIONID(OID)      |MASKCOLUMNNAME(name)      |
------------------------------------------------------------------------------------------------------
LABEL_MASK1              |0                         |0                        |                          |
总数目:1

-- 删除资源标签
DROP RESOURCE LABEL label_mask1;

示例2: 创建资源标签(包含列信息)

--  清理环境
DROP TABLE tab_mask1 CASCADE;

CREATE TABLE tab_mask1(col1 TEXT, col2 TEXT);

CONNECT syssecure/szoscar55;

--  清理环境
DROP RESOURCE LABEL label_mask2;

-- 创建包含列信息的资源标签
CREATE RESOURCE LABEL label_mask2 ADD COLUMN(sysdba.tab_mask1.col1);


SELECT MASKLABELNAME, MASKNAMESPACEID, RELNAME, MASKCOLUMNNAME FROM SYS_MASK_LABEL, SYS_CLASS WHERE MASKLABELNAME = 'LABEL_MASK2' AND OID = MASKRELATIONID ORDER BY MASKLABELNAME, MASKNAMESPACEID, RELNAME, MASKCOLUMNNAME;
MASKLABELNAME(name)      |MASKNAMESPACEID(OID)      |RELNAME(name)      |MASKCOLUMNNAME(name)      |
------------------------------------------------------------------------------------------------
LABEL_MASK2              |1                         |TAB_MASK1          |COL1                      |
总数目:1

-- 删除资源标签
DROP RESOURCE LABEL label_mask2;

CONNECT sysdba/szoscar55;

DROP TABLE tab_mask1 CASCADE;

示例3: 创建资源标签(包含多个列信息)

--  清理环境
DROP TABLE tab_mask2 CASCADE;
DROP TABLE tab_mask3 CASCADE;

CREATE TABLE tab_mask2(col3 TEXT, col4 TEXT);
CREATE TABLE tab_mask3(col5 TEXT, col6 TEXT);

CONNECT syssecure/szoscar55;

--  清理环境
DROP RESOURCE LABEL label_mask3;
DROP RESOURCE LABEL label_mask4;

-- 创建包含列信息的资源标签(两种方式)
CREATE RESOURCE LABEL label_mask3 ADD COLUMN(sysdba.tab_mask2.col3, sysdba.tab_mask2.col4);
CREATE RESOURCE LABEL label_mask4 ADD COLUMN(sysdba.tab_mask3.col5), COLUMN(sysdba.tab_mask3.col6);


SELECT MASKLABELNAME, MASKNAMESPACEID, RELNAME, MASKCOLUMNNAME FROM SYS_MASK_LABEL, SYS_CLASS WHERE (MASKLABELNAME = 'LABEL_MASK3' OR MASKLABELNAME = 'LABEL_MASK4') AND OID = MASKRELATIONID ORDER BY MASKLABELNAME, MASKNAMESPACEID, RELNAME, MASKCOLUMNNAME;
MASKLABELNAME(name)      |MASKNAMESPACEID(OID)      |RELNAME(name)      |MASKCOLUMNNAME(name)      |
------------------------------------------------------------------------------------------------
LABEL_MASK3              |1                         |TAB_MASK2          |COL3                      |
------------------------------------------------------------------------------------------------
LABEL_MASK3              |1                         |TAB_MASK2          |COL4                      |
------------------------------------------------------------------------------------------------
LABEL_MASK4              |1                         |TAB_MASK3          |COL5                      |
------------------------------------------------------------------------------------------------
LABEL_MASK4              |1                         |TAB_MASK3          |COL6                      |
总数目:4

-- 删除资源标签
DROP RESOURCE LABEL label_mask4;
DROP RESOURCE LABEL label_mask3;

CONNECT sysdba/szoscar55;

DROP TABLE tab_mask3 CASCADE;
DROP TABLE tab_mask2 CASCADE;

示例4: 创建同名资源标签

-- 切换到 SYSSECURE 用户
CONNECT syssecure/szoscar55;

--  清理环境
DROP RESOURCE LABEL label_mask5;

-- 创建空的资源标签
CREATE RESOURCE LABEL label_mask5;

-- ERROR
CREATE RESOURCE LABEL label_mask5;
ERROR, 标签 LABEL_MASK5 已定义


-- NOTICE
CREATE RESOURCE LABEL IF NOT EXISTS label_mask5;

-- 删除资源标签
DROP RESOURCE LABEL label_mask5;