# Row-level security

Group: Data

A tenant_id column only filters; one missed WHERE clause leaks data. Row-level security makes the database enforce isolation, which is how the AI form builder keeps workspaces apart.

## What I do with Row-level security

- Policies on every tenant table
- Tenant context set per request
- Tests that try to read another tenant’s rows

## Projects that use it

- [AI form builder](https://venuspaneliya.com/work/ai-form-builder/): Forms in seconds, not minutes

## Notes

- [That’s not multi-tenancy. That’s a filter.](https://venuspaneliya.com/writing/not-multi-tenancy-a-filter/)

Hire me for Row-level security: https://venuspaneliya.com/contact/
