CREATE SECURITY LABEL COMPONENT 语句
CREATE SECURITY LABEL COMPONENT 语句定义要用作安全策略一部分的组件。
调用
此语句可嵌入应用程序中或者以交互方式发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。
权限
该语句的授权标识所拥有的特权必须包括 SECADM 权限。
语法
描述
- component-name
- 命名安全标号组件。 这是一部分名称。 该名称不能标识当前服务器上的现有安全标号组件 (SQLSTATE 42710)。
- ARRAY
- 指定一组有序元素。
- string-constant, ...
- 组成此安全标号组件的有效值集的一个或多个字符串常量值。 数组元素的显示顺序很重要。 第一个元素的排名高于第二个元素。 第二个元素的排名高于第三个元素,以此类推。
- SET
- 指定无序的元素集。
- string-constant, ...
- 组成此安全标号组件的有效值集的一个或多个字符串常量值。 元素的顺序并不重要。
- TREE
- 指定节点元素的树结构。
- string-constant
- 组成此安全标号组件的有效值集的一个或多个字符串常量值。
- ROOT
- 指定关键字后面的 string-constant 是树的根节点元素。
- UNDER
- 指定 UNDER 关键字前的 string-constant 是跟随 UNDER 关键字的 string-constant 的子代。 必须将元素定义为根元素或另一个元素的子代,然后才能将其用作父元素,否则将返回错误 (SQLSTATE 42704)。
规则
这些规则适用于所有三种类型的组件 (ARRAY , SET 和 TREE):
- 元素名称不能包含以下任何字符:
- 左括号-(
- 右括号-)
- 逗号-,
- 冒号-:
- 元素名称不能超过 32 个字节 (SQLSTATE 42622)。
- 如果安全标号组件是集合或树,那么该组件可以包含不超过 64 个元素。
- CREATE SECURITY LABEL COMPONENT 语句最多可以为数组类型的安全标号组件指定 65 535 个元素。
- 不能在同一组件中多次使用任何元素名称 (SQLSTATE 42713)。
示例
- 示例 1: 创建名为 LEVEL 的 ARRAY 类型安全标号组件。 该组件具有以下四个按排名递减顺序列出的元素: Top Secret,私钥,分类和未分类。
CREATE SECURITY LABEL COMPONENT LEVEL ARRAY ['Top Secret', 'Secret', 'Classified', 'Unclassified'] - 示例 2: 创建名为COM公寓的 SET 类型安全标号组件。 该组件具有以下三个元素: "研究" , "分析" 和 "收集"。
CREATE SECURITY LABEL COMPONENT COMPARTMENTS SET {'Collection', 'Research', 'Analysis'} - 示例 3: 创建名为 GROUPS 的 TREE 类型安全标号组件。 GROUPS 有五个元素 :PROJECT , TEST , DEVELOPMENT , CURRENT 和 FIELD。 下图显示了这些元素之间的关系:
PROJECT ________|________ | | TEST DEVELOPMENT ______|______ | | CURRENT FIELD CREATE SECURITY LABEL COMPONENT GROUPS TREE ( 'PROJECT' ROOT, 'TEST' UNDER 'PROJECT', 'DEVELOPMENT' UNDER 'PROJECT', 'CURRENT' UNDER 'DEVELOPMENT', 'FIELD' UNDER 'DEVELOPMENT' )
