PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

ALTER POLICY

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

Synopsis

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