Postgresql 中文操作指南
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 |
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 { string_literal | NULL }
where aggregate_signature is:
* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]
Description
SECURITY LABEL 将一个安全标签应用于数据库对象。可以将任意数量的安全标签(每个标签提供程序一个)与一个给定的数据库对象关联起来。标签提供程序是可以加载的模块,它们使用函数 register_label_provider 来注册自身。
Parameters
-
object_nametable_name.column_nameaggregate_namefunction_nameprocedure_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
-
这是一个干扰词。
-
-
string_literal
-
安全标签的新设置,以字符串形式编写。
-
-
NULL
-
写入 NULL 以删除安全标签。
-
Examples
以下示例显示了如何设置或更改表的安全标签:
SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';
要移除标签:
SECURITY LABEL FOR selinux ON TABLE mytable IS NULL;
See Also
sepgsql , src/test/modules/dummy_seclabel