Understanding Tenancy Levels
A tenancy level represents a layer at which client data is separated and organized. You might separate data at the table level, schema level, or even across databases. The more levels you introduce, the more control and isolation you can achieve.- One level of tenancy: Clients are separated at a single layer (e.g., by table or schema).
- Multi-level tenancy: Clients are separated across two or more layers (e.g., schema + table, or database + schema + table).
One Level of Tenancy
If your setup has only one level of tenancy, here’s how your data might look:Start with your tables
Ask yourself: Do all your clients live in a single table?- If yes, your data has a
client_id
(or similar) column to mark which row belongs to which client.- Example: One
orders
table where every record is tagged with the client it belongs to. - This maps to Single Table Tenancy — a shared database, shared table setup.
- Example: One
Organized by schema?
Do you group client data by schema inside a single database?- If you use one shared schema and rely on a
client_id
column- Example: A project management platform where all companies’ contacts, deals, and activities live in one schema, but each row is tagged with a company ID.
- This maps to Single Schema Tenancy.
- If you create a dedicated schema for each client
- Example: A payroll system where each company has its own schema (
client1.employees
,client2.employees
), keeping the payroll data fully separated. - This maps to Multi Schema Tenancy.
- Example: A payroll system where each company has its own schema (
Full database per client?
Do you provision a separate database for each client?-
On MSSQL, this usually means one server with multiple client databases
- Example: An HR management platform for enterprises, where each enterprise customer gets their own MSSQL database (
db_client1
,db_client2
), all on the same server. - This maps to Multi Database MSSQL Tenancy.
- Example: An HR management platform for enterprises, where each enterprise customer gets their own MSSQL database (

- On Postgres or BigQuery, this often means spinning up one database per client
- Example: A fintech platform where each client has their own Postgres database instance for compliance and isolation.
- This maps to Multi Datasource (Hybrid Tenancy).
One shared connection?
Do all clients share one single database connection?- If yes, you’re on Single Datasource Tenancy.
- Example: A chatbot where all client conversations are stored in the same database, separated by a client identifier. A
client_id
column ensures each company only views their own conversations.
- Example: A chatbot where all client conversations are stored in the same database, separated by a client identifier. A
Multi-Level Tenancy
If your setup requires more than one layer of separation, you fall into multi-level tenancy. This setup gives you finer control by combining multiple levels such as schema, table, and database. Here are the common patterns:Do you separate clients by schema and refine with table tenancy?
- Example: A reporting tool where each client’s data is grouped under schemas, but within each schema, tables restrict access to different departments (e.g., sales vs. finance).
- This maps to Datasource → Schema → Table Tenancy.
- In Databrain, this refinement is managed by App Filter — a feature that applies table-level restrictions inside the platform.
Do you separate clients by multiple levels of tables?
- Example: A marketing analytics platform where each client has its own set of tables, and another level of tables to further restrict by campaign or region.
- This maps to Datasource → Table Tenancy Level 1 → Table Tenancy Level 2.
Do you use MSSQL with schemas and table tenancy?
- Example: An MSSQL deployment where each client database has multiple schemas (e.g., HR, payroll, support), and tables refine access by team or role.
- This maps to MSSQL Database → Schema → Table Tenancy.
Do you use MSSQL with multiple levels of tables?
- Example: An MSSQL deployment with client-level databases, each with shared tables for operations, refined by another level of tables for country-level access.
- This maps to MSSQL Database → Table Tenancy Level 1 → Table Tenancy Level 2.
Do you need the highest level of isolation across all layers?
- Example: A multinational platform where each client has its own database, schemas divide regions (e.g., North America, Europe), tables separate domains (e.g., employees, payroll, performance), and another level of tables ensure only certain roles (e.g., HR manager vs. finance lead) can access specific slices of the data.
- This maps to Datasource → Database → Schema/Table → Table Tenancy.
With this flow, you can match your current data setup to the tenancy model that fits. Start by identifying how many layers of separation you currently have. Then, see whether you’re working with tables, schemas, databases, or datasources, and whether you need an additional row level tenancy fine-grained control. Once you know where you land, Databrain takes care of the rest.