↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

Wiki / SQL 命令

ALTER POLICY

更改一条行级安全策略的定义

英文手册覆盖始于 PostgreSQL 6.4. 来源历史与运行验证各自保留独立版本边界。

当前阅读 PG 18·选择有来源记录的版本

anchor
SQL-ALTERPOLICY
file
sql-alterpolicy.html
lang
en
name
ALTER POLICY
purpose
change the definition of a row-level security policy
purpose zh
未知
sections same as
未知
slug
18
synopsis text
ALTER POLICY name ON table_name RENAME TO new_name ALTER POLICY name ON table_name [ TO { role_name | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ] [ USING ( using_expression ) ] [ WITH CHECK ( check_expression ) ]

语法

ALTER POLICY name ON table_name RENAME TO new_name

ALTER POLICY name ON table_name
[ TO { role_name | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
[ USING ( using_expression ) ]
[ WITH CHECK ( check_expression ) ]
语法图

从左向右阅读;分支表示选择,旁路表示可选,循环表示重复。点击带下划线的参数可打开对应规则。

ALTER POLICY name ON table_name RENAME TO new_name
ALTER POLICY · 语法 2
ALTER POLICY name ON table_name TO role_name PUBLIC CURRENT_ROLE CURRENT_USER SESSION_USER , USING ( using_expression ) WITH CHECK ( check_expression )

版本定义 PG 18

ALTER POLICY name ON table_name RENAME TO new_name

ALTER POLICY name ON table_name
[ TO { role_name | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
[ USING ( using_expression ) ]
[ WITH CHECK ( check_expression ) ]

描述

ALTER POLICY更改一条现有行级安全策略的定义。请注意,ALTER POLICY只允许修改策略适用的角色集合,以及USING和WITH CHECK表达式。若要更改策略的其他属性,例如它所适用的命令,或者它是宽松策略还是限制性策略,则必须删除该策略并重新创建。

要使用ALTER POLICY,你必须拥有该策略所适用的表。

在ALTER POLICY的第二种形式中,角色列表、using_expression和 check_expression在被指定时会分别独立替换。省略这些子句中的任意一个时,策略中对应的部分保持不变。

参数

name

要更改的现有策略名称。

table_name

该策略所在表的名称(可选模式限定)。

new_name

该策略的新名称。

role_name

该策略适用的角色。可以一次指定多个角色。要将该策略应用于所有角色,可使用PUBLIC。

using_expression

该策略的USING表达式。详见CREATE POLICY。

check_expression

该策略的WITH CHECK表达式。详见CREATE POLICY。

兼容性

ALTER POLICY是PostgreSQL扩展。

另见

CREATE POLICY, DROP POLICY

比较版本

完整来源事实

synopsis html

ALTER POLICY <em class="replaceable"><code>name</code></em> ON <em class="replaceable"><code>table_name</code></em> RENAME TO <em class="replaceable"><code>new_name</code></em>

ALTER POLICY <em class="replaceable"><code>name</code></em> ON <em class="replaceable"><code>table_name</code></em>
    [ TO { <em class="replaceable"><code>role_name</code></em> | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
    [ USING ( <em class="replaceable"><code>using_expression</code></em> ) ]
    [ WITH CHECK ( <em class="replaceable"><code>check_expression</code></em> ) ]

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · a709ab85

正文语言: zh-Hans · 1b5ca64c