## ALTER POLICY

ALTER POLICY — change the definition of a row level security policy

## Synopsis

    ALTER POLICY name ON table_name RENAME TO new_name

    ALTER POLICY name ON table_name
        [ TO { role_name | PUBLIC | 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 CREATE POLICY for details.

`check_expression`

  The `WITH CHECK` expression for the policy. See CREATE POLICY for details.

## Compatibility

`ALTER POLICY` is a Postgres Pro extension.

## See Also

CREATE POLICY, DROP POLICY