select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

SQL COMMANDS / ROLES & PRIVILEGES

remove a row-level security policy from a table

Syntax

DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]
Syntax diagrams

Read left to right. Branches are choices, bypasses are optional, loops repeat. Select an underlined parameter to open its rule.

DROP POLICY IF EXISTS name ON table_name CASCADE RESTRICT

Description

DROP POLICY removes the specified policy from the table. Note that if the last policy is removed for a table and the table still has row-level security enabled via ALTER TABLE, then the default-deny policy will be used. ALTER TABLE ... DISABLE ROW LEVEL SECURITY can be used to disable row-level security for a table, whether policies for the table exist or not.

Parameters

IF EXISTS

Do not throw an error if the policy does not exist. A notice is issued in this case.

name

The name of the policy to drop.

table_name

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

CASCADE
RESTRICT

These key words do not have any effect, since there are no dependencies on policies.

Examples

To drop the policy called p1 on the table named my_table:

DROP POLICY p1 ON my_table;

Compatibility

DROP POLICY is a PostgreSQL extension.

See Also

CREATE POLICY, ALTER POLICY
Version history 1
  1. PG 13 → 14changed

Related entries

Definition snapshot: 2026-09-14T13:14:25.700916+00:00@99e6866c · English manual source