GaussDB-CREATE SECURITY LABEL

66 阅读3分钟

GaussDB-CREATE SECURITY LABEL

功能描述

CREATE SECURITY LABEL语句可用于在当前数据库中为指定的安全策略创建新的安全标签。

注意事项

初始用户,具有SYSADMIN权限的用户或者继承了内置角色gs_role_seclabel权限的用户有权限创建安全标签。

语法格式

| ``` CREATE SECURITY LABEL label_name 'label_content';

| ---------------------------------------------------------- |

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/787372a52c0a42b8a36f27d4ba5fed18~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1770882117&x-signature=mp%2BGEHve2%2FQSFVFRXZ9O%2BgdXjII%3D)

#### 参数说明

-   **label_name**

    安全标签名称,需在数据库内唯一。

    取值范围:字符串,仅可以使用小写字母(a~z)、 大写字母(A~Z)、数字和特殊字符"_"、"$"的组合,且最多为63个字符,若超过63个字符,数据库会截断并保留前63个字符当做安全标签名称。

-   **label_content**

    安全标签内容,要求如下:

    安全标签由等级和范围两部分组成,两者中间用冒号分隔,形式如:等级类别:范围类别,其中等级类别有且仅由一个等级组成,范围类别可由多个范围组成,但至少需要有一个范围,例如“L1:G2,G41,G6-G27”。

    -   等级分类中有1024个等级,命名为Li,其中1≤i≤1024,等级满足偏序关系(若i ≤ j,则Li ≤ Lj),例如等级L1小于等级L3.

    -   范围分类中有1024个范围,命名为Gi,其中1≤i≤1024,范围之间无法比较大小,但可以进行集合运算,多个范围之间用逗号分隔,连字符表示区间,例如{G2-G5}表示{G2,G3,G4,G5},集合{G1}是集合{G1,G6}的子集。

    -   等级和范围的首字母L和G均为大写;L和G之后至少要有一个数字字符,且第一位非零,不允许出现其他非数字字符;{Gxxx-Gyyy}形式中数字yyy必须大于等于xxx。

    -   不符合要求的等级和范围均为非法输入,系统会报错。

        ![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/44d2b15463fe4f3c86cfb6c966811a4a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1770882117&x-signature=cF4zqlxNKPXXlEQRyj2Y1E4cqAc%3D)

        ```
        例子:
        gaussdb=# CREATE SECURITY LABEL sec_label3 'L3:';  //标签内容范围类别至少要有一个才行。
        ERROR:  in label text "L3:", there at least have one level and one group
        ```

#### 示例

| ```
--创建安全标签sec_label。 gaussdb=# CREATE SECURITY LABEL sec_label 'L1:G4';  --创建安全标签sec_label,安全标签内容为'L1:G2,G4'。 gaussdb=# CREATE SECURITY LABEL sec_label 'L1:G2,G4';                      ERROR:  security label "sec_label" already exists   --创建安全标签sec_label1,安全标签内容为'L1:G2,G4'。 gaussdb=# CREATE SECURITY LABEL sec_label1 'L1:G2,G4';  --创建安全标签sec_label2,安全标签内容为'L3:G1-G5'。 gaussdb=# CREATE SECURITY LABEL sec_label2 'L3:G1-G5';  --查看系统中已创建好的安全标签。 gaussdb=# SELECT * FROM gs_security_label;  label_name | label_content  ------------+---------------  sec_label  | L1:G4  sec_label1 | L1:G2,G4  sec_label2 | L3:G1-G5 (3 rows)  --删除已存在的安全标签sec_label、sec_label1、sec_label2。 gaussdb=# DROP SECURITY LABEL sec_label; gaussdb=# DROP SECURITY LABEL sec_label1; gaussdb=# DROP SECURITY LABEL sec_label2;  --再次查看系统中已创建好的安全标签。 gaussdb=# SELECT * FROM gs_security_label;  label_name | label_content  ------------+--------------- (0 rows) 
``` |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### 相关链接

[DROP SECURITY LABEL](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0615.html#ZH-CN_TOPIC_0000001865586192),[SECURITY LABEL ON](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0674.html#ZH-CN_TOPIC_0000001865585976)

更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>