2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5

ALTER POLICY

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

概要

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 表达式。要更改策略的其他属性,例如其适用的命令或它是 permissive 还是 restrictive,必须先删除策略再重新创建。

要使用 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 的一个扩展。

另请参阅

CREATE POLICY, DROP POLICY

提交更正

如果您在文档中发现任何不正确的内容、与您对特定功能的体验不符的内容,或者需要进一步澄清的内容,请使用此表格报告文档问题。