授予用户安全标签的示例

下列三个语句分别地创建三个名为 levelcompartmentsgroups 的安全标签组件:
CREATE SECURITY LABEL COMPONENT 
   level ARRAY ['TS','S','C','U'];  

CREATE SECURITY LABEL COMPONENT 
   compartments SET {'A','B','C','D'}; 

CREATE SECURITY LABEL COMPONENT 
   groups TREE ('G1' ROOT, 
                'G2' UNDER ROOT, 
                'G3' UNDER ROOT);
下列语句基于上面三个组件创建名为 secPolicy 的安全策略:
CREATE SECURITY POLICY secPolicy COMPONENTS 
   level, compartments, groups; 
下列语句创建名为 secLabel1 的安全标签:
CREATE SECURITY LABEL secPolicy.secLabel1 
   COMPONENT level 'S', 
   COMPONENT compartments 'A', 'B', 
   COMPONENT groups 'G2'; 
下列语句创建名为 secLabel2 的安全标签:
CREATE SECURITY LABEL secPolicy.secLabel2 
   COMPONENT level 'S', 
   COMPONENT compartments 'B', 
   COMPONENT groups 'G2'; 
下列语句创建名为 secLabel3 的安全标签:
CREATE SECURITY LABEL secPolicy.secLabel3 
   COMPONENT level 'S', 
   COMPONENT compartments 'A', 
   COMPONENT groups 'G3'; 
下列语句创建名为 secLabel4 的安全标签:
CREATE SECURITY LABEL secPolicy.secLabel4 
   COMPONENT level 'TS', 
   COMPONENT compartments 'A', 
   COMPONENT groups 'G1';
下列语句授予用户 sam 读访问的安全标签:
 GRANT SECURITY LABEL secPolicy.secLabel1 
   TO sam FOR READ ACCESS;
下列语句授予用户 sam 写访问的安全标签。由于满足以上给出的规则,此语句成功。
 GRANT SECURITY LABEL secPolicy.secLabel2 
   TO sam FOR WRITE ACCESS;
下列语句授予用户 lynette 读访问的安全标签:
GRANT SECURITY LABEL secPolicy.secLabel1 
   TO lynette FOR READ ACCESS;
下列语句尝试授予用户 sam 写访问的安全标签。由于违反有关树组件的规则,此语句失败。
GRANT SECURITY LABEL secPolicy.secLabel3 
   TO sam FOR WRITE ACCESS; 
下列语句尝试授予用户 sam 写访问的安全标签。由于违反有关数组组件的规则,此语句失败。
 GRANT SECURITY LABEL secPolicy.secLabel4 
   TO sam FOR WRITE ACCESS;

当 GRANT SECURITY LABEL 语句成功地将安全标签授予用户时,数据库服务器更新系统目录的 sysseclabelauth 表来注册该安全标签的新的持有者。

要了解 LBAC 安全对象的讨论,请参阅您的 GBase 8s 安全指南