September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

52.38. pg_policy

The catalog pg_policy stores row level security policies for tables. A policy includes the kind of command that it applies to (possibly all commands), the roles that it applies to, the expression to be added as a security-barrier qualification to queries that include the table, and the expression to be added as a WITH CHECK option for queries that attempt to add new records to the table.

Table 52.38. pg_policy Columns

Name Type References Description
polname name   The name of the policy
polrelid oid pg_class.oid The table to which the policy applies
polcmd char   The command type to which the policy is applied: r for SELECT, a for INSERT, w for UPDATE, d for DELETE, or * for all
polpermissive boolean   Is the policy permissive or restrictive?
polroles oid[] pg_authid.oid The roles to which the policy is applied
polqual pg_node_tree   The expression tree to be added to the security barrier qualifications for queries that use the table
polwithcheck pg_node_tree   The expression tree to be added to the WITH CHECK qualifications for queries that attempt to add rows to the table

Note

Policies stored in pg_policy are applied only when pg_class.relrowsecurity is set for their table.