En bref

Trois patterns multi-tenant existent sur Postgres : Row-Level Security avec une colonne tenant, un schéma par tenant, ou une base par tenant. Sauf besoin d'isolation forte (santé, finance), le RLS offre le meilleur rapport simplicité/sécurité — l'isolation est garantie par le moteur de base de données et non par le code applicatif, et une seule migration suffit.

Un SaaS B2B est presque toujours multi-tenant. Trois patterns existent en Postgres, chacun avec ses trade-offs. Choisir le mauvais pour votre stade coûte des jours de refactor.

Défaut recommandé 2025 : Row-Level Security (RLS) avec une colonnetenant_id. Sauf besoin de fort isolement (santé, finance), c'est le meilleur ratio simplicité / sécurité.

Pattern 1 — Row-Level Security (RLS)

  • Toutes les tables ont une colonne tenant_id
  • Policies Postgres filtrent selon la session
  • Une seule base, une seule migration à faire
  • Isolation garantie au niveau moteur DB, pas au niveau app

Idéal pour : B2B classique, jusqu'à des milliers de tenants.

Pattern 2 — Schema par tenant

  • Un schéma Postgres (tenant_a, tenant_b) par client
  • Isolation forte, backup par tenant possible
  • Migrations à répliquer sur chaque schéma : complexe

Idéal pour : quelques dizaines de tenants avec besoin d'isolement fort.

Pattern 3 — Base par tenant

  • Une base Postgres complète par client
  • Isolation totale, conformité facile
  • Coût opérationnel élevé, migrations lourdes

Idéal pour : clients grand compte régulés (banque, santé) exigeant isolement souverain.

90 % des SaaS B2B tiennent en Row-Level Security. Le sur-isolement est un coût, pas un gain, jusqu'à ce qu'il devienne exigence contractuelle.

On regarde votre archi ?

En 30 minutes on peut trancher le bon pattern pour votre projet. Réservez un créneau. À lire : Supabase vs Firebase.

Questions fréquentes

Quel pattern multi-tenant choisir pour un SaaS B2B ?

Le Row-Level Security avec une colonne tenant, dans la grande majorité des cas. L'isolation est garantie par le moteur de base de données et non par le code applicatif, une seule migration suffit pour tous les clients, et le modèle tient jusqu'à des milliers de tenants.

Quand faut-il un schéma ou une base par tenant ?

Quand l'isolation forte est une exigence contractuelle ou réglementaire — santé, finance — ou quand une sauvegarde et une restauration par client sont nécessaires. Le coût est réel : chaque migration doit être répliquée sur chaque schéma ou chaque base.

Peut-on changer de pattern multi-tenant plus tard ?

Oui, mais c'est cher : le changement touche le modèle de données, les migrations et souvent la couche d'accès complète. C'est précisément pourquoi ce choix se fait au cadrage — se tromper à ce niveau coûte des jours de reprise, pas des heures.

Un projet à lancer ou à sauver ?

30 min d'appel gratuit. On regarde ensemble ce qui bloque et par où commencer.

Réserver un appel découverte