Multi-Region Row Level Security in CockroachDB

46 rusticwizard 11 7/9/2025, 9:53:19 PM cockroachlabs.com ↗

Comments (11)

DSingularity · 12h ago
The first example demonstrating row level security contains results from the wrong tenant.
rusticwizard · 10h ago
Ah nice catch! This is an unfortunate copy paste error on the content on our part and we will fix it first thing tomorrow.
sebmellen · 11h ago
Is that true? I can’t quite follow it on mobile.
rsclarke · 10h ago
Yes, the example shows setting the current tenant id to all ones and then performing a select revealing a tenant id of all twos.

The same result is displayed in another example when correctly using a tenant id of all twos. A mistake perhaps of wrong output with the wording in the article is all.

journal · 11h ago
Doesn't same database multi-tenancy defeats the one-tenant one-database advantage of being able to easily disaster recover a single tenant or allow for easily moving a tenant and all their stuff to a dedicated box?
esseph · 11h ago
At a certain scale they'd be sharded and not on a single instance anyway, right?
jandrewrogers · 10h ago
Even then, you do want to provide some degree of hardware-adjacent isolation to limit not just the blast radius but also computational cost of some DDL operations in a multi-tenant setup.

For example, you generally only want to have one tenant’s data per storage page. There are many famous ways that interleaving different tenants’ data at a fine-grained level can go very wrong.

bob1029 · 28m ago
Aggregating all tenants into the same tables could provide you with much more robust statistics for the query planner to use.

There are also advantages from a cache utilization standpoint if the system is heavily loaded.

journal · 11h ago
somewhere only in one place there will be main index with at least references to locations where to find others. at the top somewhere there is always just a flat list. this is a multi-dimensional problem. i really want to know real life scenario someone arguing for or against this. really interested to see what side people pick and where they draw the line of what it means to be multi-tenant. personally, i will never again write multi-tenant code ever again in my life. the implementation i've modeled for myself because i understood that immediate backup and restore is more important than fancy multi-tenancy.
sqlitor · 7h ago
What happens if an attacker executes `SET app.current_tenant` a second time on the existing connection (e.g. through SQL injection)?
jayzalowitz · 13h ago
well done!