--- title: "pg_policy" id: catalog-pg-policy pg_version: "20devel" --- ## 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. **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.md).`oid`) | The table to which the policy applies | | `polcmd` `char` | The command type to which the policy is applied: `r` for [SELECT](sql-select.md), `a` for [INSERT](sql-insert.md), `w` for [UPDATE](sql-update.md), `d` for [DELETE](sql-delete.md), or `*` for all | | `polpermissive` `bool` | Is the policy permissive or restrictive? | | `polroles` `oid[]` (references [pg_authid](catalog-pg-authid.md).`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.md).`relrowsecurity` is set for their table.