VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

SECURITY LABEL

SECURITY LABEL - 定义或更改应用于对象的安全标签

语法格式

SECURITY LABEL [ FOR provider ] ON
{
  TABLE object_name |
  COLUMN table_name.column_name |
  AGGREGATE aggregate_name ( aggregate_signature ) |
  DATABASE object_name |
  DOMAIN object_name |
  EVENT TRIGGER object_name |
  FOREIGN TABLE object_name
  FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  LARGE OBJECT large_object_oid |
  MATERIALIZED VIEW object_name |
  [ PROCEDURAL ] LANGUAGE object_name |
  PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  PUBLICATION object_name |
  ROLE object_name |
  ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  SCHEMA object_name |
  SEQUENCE object_name |
  SUBSCRIPTION object_name |
  TABLESPACE object_name |
  TYPE object_name |
  VIEW object_name
} IS 'label'

其中 aggregate_signature 是:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

说明

SECURITY LABEL将安全标签应用于数据库对象。任意数量的安全标签(每个标签提供者一个)可以与给定的数据库对象相关联。标签提供程序是可加载的模块,它们使用函数register_label_provider 进行自我注册。

注意

register_label_provider 不是SQL函数;它只能从加载到后端的C代码调用。

标签提供程序确定给定标签是否有效以及是否允许将该标签分配给给定对象。给定标签的含义同样由标签提供者自行决定。Vastbase E100对标签提供者是否或如何解释安全标签没有任何限制;它只是提供了一种存储它们的机制。实际上,该工具旨在允许与基于标签的强制访问控制(MAC)系统(如SE-Linux)集成。这样的系统基于对象标签做出所有访问控制决策,而不是传统的自主访问控制(DAC)概念,例如用户和组。

参数说明

  • object_name
  • table_name.column_name
  • aggregate_name
  • function_name
  • procedure_name
  • routine_name

    要标记的对象的名称。表,聚合,域,外表,函数,过程,例程,序列,类型和视图的名称可以是模式限定的。

  • provider

    与此标签关联的提供程序的名称。必须加载指定的提供者,并且必须同意建议的标签操作。如果只加载了一个提供程序,则为简洁起见,可省略提供程序名称。

  • argmode

    函数,过程或聚合参数说明的模式: IN , OUT , INOUT 或 VARIADIC。如果省略,则默认为 IN 。注意 SECURITY LABEL 实际上并没有关注 OUT参数说明,因为只需要输入参数说明来确定函数的标识。因此,列出 IN , INOUT和 VARIADIC 参数说明就足够了。

  • argname

    函数,过程或聚合参数说明的名称。请注意, SECURITY LABEL实际上并不关注参数说明名称,因为只需要参数说明数据类型来确定函数的标识。

  • argtype

    函数,过程或聚合参数说明的数据类型。

  • large_object_oid

    大对象的OID。

  • PROCEDURAL

    这是一个噪音词。

  • label

    新的安全标签,写为字符串文字;或 NULL 删除安全标签。

示例

以下示例显示了如何更改表的安全标签。

SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';