On this page
Note
SECURITY LABEL
安全标签-定义或更改应用于对象的安全标签
Synopsis
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 |
PUBLICATION object_name |
ROLE object_name |
SCHEMA object_name |
SEQUENCE object_name |
SUBSCRIPTION object_name |
TABLESPACE object_name |
TYPE object_name |
VIEW object_name
} IS 'label'
where aggregate_signature is:
* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]
Description
SECURITY LABEL
将安全标签应用于数据库对象。可以将任意数量的安全标签(每个标签提供者一个)与给定的数据库对象相关联。标签提供者是可加载的模块,它们通过使用函数register_label_provider
进行注册。
Note
register_label_provider
不是 SQL 函数;只能从加载到后端的 C 代码中调用它。
标签提供者确定给定标签是否有效以及是否可以将该标签分配给给定对象。给定标签的含义同样由标签提供者决定。 PostgreSQL 对标签提供者是否必须解释或如何解释安全标签没有任何限制。它仅提供了一种存储它们的机制。实际上,此功能旨在允许与基于标签的强制性访问控制(MAC)系统(例如 SELinux)集成。这样的系统基于对象标签而不是传统的自由访问控制(DAC)概念(例如用户和组)做出所有访问控制决策。
Parameters
object_name
table_name.column_name
aggregate_name
function_name
- 要标记的对象的名称。表,集合,域,外部表,函数,序列,类型和视图的名称可以使用模式限定。
provider
- 与该标签关联的提供者的名称。必须加载指定的提供者,并且必须同意提议的标签操作。如果仅加载了一个提供程序,为简便起见,可以省略提供程序名称。
argmode
- 函数或集合参数的模式:
IN
,OUT
,INOUT
或VARIADIC
。如果省略,则默认值为IN
。注意SECURITY LABEL
实际上并没有注意OUT
参数,因为只需要 Importing 参数即可确定函数的身份。因此,列出IN
,INOUT
和VARIADIC
参数就足够了。
- 函数或集合参数的模式:
argname
- 函数或聚合参数的名称。注意
SECURITY LABEL
实际上并没有注意参数名称,因为只需要参数数据类型即可确定函数的身份。
- 函数或聚合参数的名称。注意
argtype
- 函数或聚合参数的数据类型。
large_object_oid
- 大对象的 OID。
PROCEDURAL
- 这是一个干扰词。
label
- 新的安全标签,以字符串 Literals 形式表示;或
NULL
删除安全标签。
- 新的安全标签,以字符串 Literals 形式表示;或
Examples
以下示例显示如何更改表的安全性标签。
SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';
Compatibility
SQL 标准中没有SECURITY LABEL
命令。
See Also
sepgsql, src/test/modules/dummy_seclabel