--- title: "ALTER POLICY" id: sql-alterpolicy pg_version: "20devel" --- # 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_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 [CREATE POLICY](sql-createpolicy.md) for details. **`check_expression`** The `WITH CHECK` expression for the policy. See [CREATE POLICY](sql-createpolicy.md) for details. ## Compatibility `ALTER POLICY` is a PostgreSQL extension. ## See Also [CREATE POLICY](sql-createpolicy.md), [DROP POLICY](sql-droppolicy.md)