受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
此文档适用于不受支持的 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只允许修改策略适用的角色集合, 以及USINGWITH CHECK表达式。 若要更改策略的其他属性,例如它所适用的命令,或者它是宽容性还是限制性策略, 则必须删除该策略并重新创建。

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

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

参数

name #

要更改的现有策略名称。

table_name #

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

new_name #

该策略的新名称。

role_name #

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

using_expression #

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

check_expression #

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

兼容性

ALTER POLICYPostgreSQL扩展。