PostgreSQL
TMA-POSTGRES-4.7
Ensure Row Level Security (RLS) is configured correctly
Description
In addition to the SQL-standard privilege system available through GRANT, tables can have row security policies that restrict, on a per-user basis, which individual rows can be returned by normal queries or inserted, updated, or deleted by data modification commands. This feature is also known as Row Level Security (RLS).
How it is checked
Audit method: Manual review
Determine which tables need row level security, then run SELECT oid, relname, relrowsecurity FROM pg_class WHERE relrowsecurity IS TRUE; Any table that requires RLS but is missing from the result (or lacks policies, see \d+ <table>) is a fail.
How it is fixed
Fix method: Guidance or infrastructure patch
ALTER TABLE <table> ENABLE ROW LEVEL SECURITY; then CREATE POLICY ... for each required access rule, and confirm roles that must obey RLS do not have BYPASSRLS.
Properties
- Operating systems
- Any
- Tags
- postgresdatabaseauthorizationmanual
- Reference
- CIS PostgreSQL 18 Benchmark v1.0.0 - 4.7 Ensure Row Level Security (RLS) is configured correctly