Row-level security
A database feature that enforces per-row access control at the database level. Ensures that a query for user A's data cannot return user B's rows even if the application code accidentally tried to.
Why it matters
Application-only tenant isolation depends on every line of application code remembering to scope queries. One missed scope is a data leak. Row-level security at the database layer makes the database itself enforce the scope: even if the application code 'forgets,' the database refuses to return cross-tenant rows.
The defense-in-depth value is that an application bug that would otherwise leak data is caught by the database before any data is returned. Combined with application-side scoping, the two layers protect against different failure modes.
How Ajeris handles this
User-scoped tables in Ajeris have row-level security enforced by the database. The application sets the user context on every request; the database refuses to return cross-tenant rows even if a query was authored without explicit scoping. Combined with tenant isolation, this is the structural commitment that one user's data cannot leak to another.