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 代码中调用。
标签提供者决定一个给定标签是否合法并且它是否可以被分配该标签给一个给定 对象。一个给定标签的含义也同样由标签提供者判断。 PostgreSQL没有对一个标签提供者是否必须或者如何解释 安全标签做出限定,它仅仅只是提供了一种机制来存储它们。实际上,这个功能是 为了允许与基于标签的强制访问控制(MAC)系统集成(例如 SELinux)。这类系统会基于对象标签而不是传统的自主 访问控制(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";
在 SQL 标准中没有SECURITY LABEL
命令。
src/test/modules/dummy_seclabel
前面几章我们学习了自动命令。执行下面命令::autocmd BufWrite * :echom "Writing buffer!"现在使用:write命令将当前缓冲区写入...
XSLT xsl:value-of 元素XSLTxsl:value-of元素有两个作用,你可以通过本节的内容对其进行了解。 XSLT 元素参考手册定义和用法 xsl...
JavaScript RegExp ^ 量词 JavaSript RegExp 对象定义和用法 ^n量词匹配任何开头为 n 的字符串。 语法new RegExp("^n")或者/^n/...
XML 元素 XML 元素是 XML 文档中必不可缺的部分,我们可以将 XML 元素看成一个容器,其中存放了文本,元素,属性,媒体对象或所...
Anchor hreflang 属性 Anchor对象定义和用法 hreflang 属性可设置或返回链接中 hreflang 属性的值。hreflang 属性可设置或返回被...
Video preload 属性 Video 对象实例查看页面一旦加载是否开始加载视频:var x = document.getElementById(myVideo).preload;x输...
Video duration 属性 Video 对象实例获得当前视频的长度:var x = document.getElementById(myVideo).duration;x 输出结果为:12....
Select type 属性 Select 对象定义和用法type 属性可返回下拉列表的表单类型。对于下拉列表,类型总是 select-one 或 select-mul...