## 52.37. `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.37. `pg_policy` Columns** | Column Type

Description | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `oid` `oid`

Row identifier | | `polname` `name`

The name of the policy | | `polrelid` `oid` (references [`pg_class`](catalog-pg-class.html).`oid`)

The table to which the policy applies | |`polcmd` `char`

The command type to which the policy is applied: `r` for [SELECT](sql-select.html), `a` for [INSERT](sql-insert.html), `w` for [UPDATE](sql-update.html), `d` for [DELETE](sql-delete.html), or `*` for all| | `polpermissive` `bool`

Is the policy permissive or restrictive? | | `polroles` `oid[]` (references [`pg_authid`](catalog-pg-authid.html).`oid`)

The roles to which the policy is applied; zero means `PUBLIC` (and normally appears alone in the array) | | `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`](catalog-pg-class.html).`relrowsecurity` is set for their table.