Search code examples
databasepostgresqlrow-level-security

How to check if row level security is enabled for a table in postgres


Enabling row level security on a table in postgres is pretty straightforward:

alter table some_table enable row level security;

How would you check to see which tables in a given schema have row level security enabled (for testing)?


Solution

  • This is stored in pg_class

    • relrowsecurity bool True if table has row level security enabled; see pg_policy catalog
    • relforcerowsecurity bool True if row level security (when enabled) will also apply to table owner; see pg_policy catalog

    So you can use:

    select relname, relrowsecurity, relforcerowsecurity
    from pg_class
    where oid = 'your_table_name'::regclass;
    

    Alternatively use pg_tables