TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 780 subscribers
Post #1849 3
标题

BootSaaS:schema‑per‑tenant 方案防止跨租户数据泄露

正文

在 B2B SaaS 中,单一查询缺失租户过滤即可让用户看到其他客户的账单。
BootSaaS 采用 schema‑per‑tenant 架构:
- 每个租户拥有独立的 PostgreSQL schema(如 acme.invoicesglobex.invoices)。
- 业务查询保持简洁:SELECT id, amount FROM invoices,连接层根据租户上下文自动切换到对应 schema。
- 通过 Spring Security 解析 JWT 中的 tenantId,填充 CurrentTenantIdentifierResolverMultiTenantConnectionProvider,确保请求在正确的 schema 下执行。

核心优势
- 业务表隔离:不同租户的数据完全分离,避免误读。
- 共享连接池:单一数据库角色与统一 HikariCP 池,资源利用率高。
- 统一迁移:Liquibase 负责所有租户的 schema 变更,迁移脚本可复用。

实现要点
- 租户注册后异步创建 schema,完成迁移才标记为可用。
- 迁移历史与锁表放在各自租户 schema,防止跨租户冲突。
- 通过测试覆盖:租户导出不泄露他人数据、ID 访问隔离、错误迁移恢复等。


BootSaaS 为想要在 Spring Boot + Angular 环境下快速搭建安全、可扩展 SaaS 的团队提供了完整的架构与实现参考。
More from @devtoolboxhub
  1. Sep 23, 20262026年五大热门MCP网关汇总 MCP标准化了模型和代理连接外部系统的方式,当组织内有大量AI应用、工具和多团队协作时,连接MCP服务不难,难在管理。 MCP网关就是用于解决这类…
  2. Sep 23, 2026AI reshaping 全球服务外包市场 数十年来,企业扩张运营规模默认方案是将后台工作、一线客户服务和行政支持转移到低成本人力中心。 印度和菲律宾在全球服务贸易中占据了巨大份额…
  3. Sep 23, 2026AI 代理端到端开发工作流 现有AI编码代理能较好完成单个开发任务,但处理包含多个关联任务的完整功能需求时,会遇到任务编排、依赖管理和风险控制等问题。近期有文章提出一套从Epic到…
  4. Sep 22, 20262026年LLM路由工具选型对比 选择LLM路由工具的核心依据是基础设施控制权,而非模型数量。LiteLLM支持100+模型提供商,已经成为混合部署自托管模型与云端模型团队的标准方…
  5. Sep 22, 2026Archify 推出浏览器端交互式图表 Archify 是MIT许可的开源系统图表生成工具,2026年4月创建,截至2026年9月已收获超65000个Star,目前仅以Agent技…
  6. Sep 22, 2026PostgreSQL 参数 max_parallel_apply_workers_per_subscription 解析 max_parallel_apply_workers_pe…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →