CREATE SECURITY LABEL COMPONENT 语句

CREATE SECURITY LABEL COMPONENT 语句定义要用作安全策略一部分的组件。

调用

此语句可嵌入应用程序中或者以交互方式发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。

权限

该语句的授权标识所拥有的特权必须包括 SECADM 权限。

语法

Read syntax diagramSkip visual syntax diagramCREATE SECURITY LABEL COMPONENTcomponent-name array-clauseset-clausetree-clause
array-clause
Read syntax diagramSkip visual syntax diagramARRAY[ ,string-constant ]
set-clause
Read syntax diagramSkip visual syntax diagramSET{ ,string-constant }
tree-clause
Read syntax diagramSkip visual syntax diagramTREE(string-constantROOT ,string-constantUNDERstring-constant )

描述

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'
         )