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;