Row / Column Level Security
Sit a governance worker in front of your data so every query is filtered to the rows a user may see and masked on the columns they may not.
What Row / Column Level Security does
Row / Column Level Security is a policy worker that wraps another attached catalog. Define policies once — by role, attribute, or tenant — and the worker rewrites incoming queries so users only ever see permitted rows and masked or omitted sensitive columns.
Policies are evaluated at query time against the caller’s identity, so the same table can return different results to different people without copying data into per-team views. Decisions are logged for audit, and policies live in version-controllable rules rather than scattered grants.
Highlights
- Row filters by role, attribute, or tenant
- Column masking, hashing, or full redaction
- Policy-as-code with review and versioning
- Per-query audit log of access decisions
- Wraps any VGI catalog or DuckDB attachment
Tables & functions it exposes
Once attached, the connector adds these objects to your SQL session.
-
Table
rcls.policies - The active policy set with their targets.
-
Table
rcls.audit - Every access decision, with caller and outcome.
-
Function
explain_access(table) - Show why a caller can or cannot see rows.
-
Secret
rcls_identity - Identity provider binding for the caller context.
What teams build with Row / Column Level Security
Give every team one shared table without per-team copies.
Mask PII columns for analysts while keeping them for auditors.
Enforce tenant isolation in a multi-tenant dataset.
Ready to attach Row / Column Level Security?
Contact us for pricing and to get started, or talk to us about a custom connector for your stack.
Other connectors
Kafka
Streaming
Read and produce Kafka topics as SQL tables.
IMAP
Query mailboxes and messages over IMAP as tables.
HostQuery
Federation
Federate queries across remote database hosts.