ALTER ACCESS POLICY

对现有访问策略执行以下操作之一:

  • 通过更改其表达式和启用/禁用策略来修改访问策略。

  • 将访问策略从一个表复制到另一个表。

语法

修改策略:

ALTER ACCESS POLICY ON [[database.]schema.]table
   { FOR COLUMN column [ expression ] | FOR ROWS [ WHERE expression ] } { GRANT TRUSTED } { ENABLE | DISABLE }

复制政策:

ALTER ACCESS POLICY ON [[database.]schema.]table
   { FOR COLUMN column | FOR ROWS } COPY TO TABLE table;

参数

[database.]schema

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

包含要启用、禁用或复制的访问策略的表的名称。
FOR COLUMN column [expression]
替换之前为此列设置的访问策略表达式。从 FOR COLUMN 子句中省略 expression,以便仅启用或禁用此策略,或将其复制到其他表中。
FOR ROWS [WHERE expression]
替换之前为此表设置的行访问策略表达式。从 FOR ROWS 子句中省略 WHERE expression,以便仅启用或禁用此策略,或将其复制到另一个表。
GRANT TRUSTED

指定 GRANT 语句在确定用户是否可以对目标表执行 DML 操作时优先于访问策略。如果省略,则只有在访问策略允许用户查看原始未更改状态的存储数据时,用户才能修改表数据。有关详细信息,请参阅访问策略和 DML 操作

ENABLE | DISABLE
指示在表级别启用还是禁用访问策略。
COPY TO TABLE tablename
将现有访问策略复制到指定的表。复制的访问策略包括启用/禁用和 GRANT TRUSTED 状态。

需要满足以下要求:

  • 复制列访问策略:

    • 目标表必须包含相同名称和兼容数据类型的列。

    • 目标列不得包含访问策略。

  • 复制行访问策略:目标表不得包含访问策略。

特权

修改访问策略

非超级用户:表的所有权

复制访问策略

非超级用户:源表和目标表的所有权

示例

请参阅 管理访问策略

另请参阅

CREATE ACCESS POLICY