安全标签 - 定义或更改应用于对象的安全性标签
SECURITY LABEL [ FORprovider] ON { TABLEobject_name| COLUMNtable_name.column_name| AGGREGATEaggregate_name(aggregate_signature) | DATABASEobject_name| DOMAINobject_name| EVENT TRIGGERobject_name| FOREIGN TABLEobject_nameFUNCTIONfunction_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | LARGE OBJECTlarge_object_oid| MATERIALIZED VIEWobject_name| [ PROCEDURAL ] LANGUAGEobject_name| PROCEDUREprocedure_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | PUBLICATIONobject_name| ROLEobject_name| ROUTINEroutine_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | SCHEMAobject_name| SEQUENCEobject_name| SUBSCRIPTIONobject_name| TABLESPACEobject_name| TYPEobject_name| VIEWobject_name} IS {string_literal| NULL } whereaggregate_signatureis: * | [argmode] [argname]argtype[ , ... ] | [ [argmode] [argname]argtype[ , ... ] ] ORDER BY [argmode] [argname]argtype[ , ... ]
SECURITY LABEL 将安全标签应用于数据库对象。可以将任意数量的安全标签(每个标签提供程序一个)与给定的数据库对象关联。标签提供程序是可加载模块,它们使用函数 register_label_provider 注册自身。
register_label_provider 不是 SQL 函数;只能从加载到后端的 C 代码中调用它。
标签提供程序确定给定标签是否有效以及是否允许将该标签分配给给定对象。同样,给定标签的含义也由标签提供程序决定。 PostgreSQL 不会对标签提供程序如何解释安全标签施加任何限制;它只是提供了一种存储标签的机制。在实践中,此功能旨在允许与基于标签的强制访问控制 (MAC) 系统(如 SELinux)集成。此类系统基于对象标签做出所有访问控制决策,而不是基于传统自主访问控制 (DAC) 概念(如用户和组)。
object_nametable_name.column_nameaggregate_namefunction_nameprocedure_nameroutine_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 以删除安全标签。
以下示例显示如何设置或更改表的安全标签
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;
SQL 标准中没有 SECURITY LABEL 命令。
src/test/modules/dummy_seclabel
如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。