ALTER POLICY

ALTER POLICY

7

SQL - Language Statements

ALTER POLICY

change the definition of a row-level security 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

) \]

Description
===========

`ALTER POLICY` changes the definition of an existing row-level security
policy. Note that `ALTER POLICY` only allows the set of roles to which
the policy applies and the `USING` and `WITH CHECK` expressions to be
modified. To change other properties of a policy, such as the command to
which it applies or whether it is permissive or restrictive, the policy
must be dropped and recreated.

To use `ALTER POLICY`, you must own the table that the policy applies
to.

In the second form of `ALTER POLICY`, the role list, using\_expression,
and check\_expression are replaced independently if specified. When one
of those clauses is omitted, the corresponding part of the policy is
unchanged.

Parameters
==========

name

:   The name of an existing policy to alter.

table\_name

:   The name (optionally schema-qualified) of the table that the policy
    is on.

new\_name

:   The new name for the policy.

role\_name

:   The role(s) to which the policy applies. Multiple roles can be
    specified at one time. To apply the policy to all roles, use
    `PUBLIC`.

using\_expression

:   The `USING` expression for the policy. See [???](#sql-createpolicy)
    for details.

check\_expression

:   The `WITH CHECK` expression for the policy. See
    [???](#sql-createpolicy) for details.

Compatibility
=============

`ALTER POLICY` is a PostgreSQL extension.

See Also
========
