企业级SaaS的“数据墙”:如何让1000家企业共用一个系统,却互不干扰?
# 企业级SaaS的“数据墙”:如何让1000家企业共用一个系统,却互不干扰?
想象一下:你是一家快速成长的制造企业CIO,公司刚刚上线了PLM系统。一切运转良好,直到老板说:“隔壁子公司也想用这套系统,但他们的供应商、BOM、ECR数据必须和我们完全隔离。”
你开始头疼了——传统方案无非两条路:要么给每家子公司单独部署一套系统(成本翻倍,运维噩梦),要么共用一套系统但靠权限硬隔离(配置复杂到怀疑人生,而且总有数据泄露的风险)。
这不是技术难题,这是企业数字化进程中的“真实痛点”。当SaaS化、多租户成为企业软件标配,如何让成百上千家企业共用一套系统,却感觉“像自己独占一样安全”?
今天,我们就拆解BossAgents(左帮右臂)是如何用一套“智能数据隔离架构”,轻松解决这个问题的。
---
## 什么是“多租户”?为什么它如此重要?
多租户,简单说就是“一套系统,服务多个客户(租户)”。每个租户的数据逻辑隔离,互不可见。
对你们企业来说,这意味着:
- **成本降低**:不需要为每个子公司、每个客户单独部署系统
- **运维简化**:升级一次,所有租户同步受益
- **数据安全**:租户A永远看不到租户B的零件、BOM、变更记录
但难点在于:传统PLM/PDM系统并非为多租户设计。强行改造,往往导致性能下降、权限混乱、数据泄漏风险。
BossAgents的解法,是从架构层面“重新设计数据流动的每一环”。
---
## 架构揭秘:一条看不见的“企业ID链”
想象一条传送带,上面流动着所有数据:零件、文档、供应商、ECR、ECO……每个数据项都贴着一张“企业标签”(enterprise_id)。
这条传送带贯穿三个环节:
### 第一环:前端/智能体入口
用户登录时,必须选择所属企业。所有请求自动携带企业ID。
### 第二环:BossAgents后端——数据隔离的“守门员”
这是整个架构的核心。它做了三件事:
1. **认证中间件**:解析JWT令牌,提取用户所属企业ID
2. **AML拦截器**:所有发往SCSAI agent的查询,自动注入企业ID过滤条件
3. **本地数据库**:存储企业信息、用户、审计日志
### 第三环:SCSAI agent——数据存储层
所有业务对象类(Part、Document、Vendor、BOM、ECR、ECO等)都增加了一个属性:enterprise_id。
**关键设计**:数据隔离不依赖SCSAI原生的权限系统(那样配置太复杂),而是通过BossAgents中间层强制过滤。
这意味着:即使SCSAI本身只有一个服务账号,但通过中间层的智能注入,每个用户看到的只是自己企业的那一部分数据。
---
## 数据模型:一张“企业归属表”如何搞定一切?
### 本地数据库(SQLite)
- **enterprises表**:存储每个企业的ID、名称、管理员邮箱、Coze邮箱、数据库配置
- **users表**:存储用户信息,并关联到企业ID
### SCSAI对象类扩展
所有业务对象(Part、Document、Vendor、Customer、BOM、ECR、ECO、ECN、QualityPlan、WorkOrder)都增加了enterprise_id字段。
**例外**:SCSAI内置的User(Identity)对象不添加,因为用户管理由BossAgents层负责。
---
## 角色与权限:三种角色,清晰分工
### 1. super_admin(超级管理员)
- 全局权限:创建企业、管理所有用户、查看所有数据
- 由系统部署者管理
### 2. enterprise_admin(企业管理员)
- 管理本企业用户、查看本企业所有数据、配置Coze邮箱
- 由super_admin创建
### 3. enterprise_user(企业普通用户)
- 查看/操作本企业数据,受SCSAI Permission限制
- 由enterprise_admin创建
**权限映射机制**:BossAgents使用一个统一的SCSAI服务账号进行所有API调用。数据隔离完全通过中间层强制enterprise_id过滤实现。
---
## 核心流程:从注册到数据操作,每一步都“带着企业ID”
### 注册登录流程
1. super_admin创建企业 → 生成enterprise_id
2. super_admin创建企业管理员
3. 企业管理员登录后,创建本企业普通用户
**登录时**:用户提供邮箱、密码、企业ID,后端验证后生成JWT(包含user_id、enterprise_id、role)。
### API中间件认证
每个请求到达后端时,中间件自动:
1. 解析JWT,提取用户ID、企业ID、角色
2. 如果是super_admin,可以指定查看任意企业
3. 将企业ID注入到后续所有操作
### AML自动注入——核心黑科技
当用户发送查询时,BossAgents的SCSAIClient会自动在每条AML语句的第一个`-
```
用户B(企业002)查询零件,实际执行的AML是:
```xml
-
```
**天然隔离,无需额外配置。**
### Coze邮箱推送带企业标识
当系统自动发送邮件给Coze智能体时,邮件标题和回调API都携带企业ID,确保智能体知道数据属于哪个企业,从而做出正确的业务决策。
---
## 实现优先级:从核心到完善
### P0:基础架构(2天)
- 本地数据库:enterprises + users表
- 认证中间件:JWT签发+验证
- SCSAI客户端增强:enterprise_id自动注入
- 注册登录API
### P1:企业管理(1天)
- super_admin CRUD企业
- enterprise_admin管理本企业用户
- SCSAI对象类扩展脚本
### P2:前端适配(1天)
- 登录页加企业选择
- 企业管理后台
- 用户管理页面
### P3:Coze打通(0.5天)
- 邮件推送携带企业标识
- Coze回调API支持企业ID
---
## 结语:让“数据隔离”成为企业的隐形护城河
回到开头的场景:当你的子公司想共用同一套PLM系统时,不再需要“单独部署”或“复杂权限配置”。
BossAgents(左帮右臂)用一条看不见的“企业ID链”,让1000家企业共享一套系统,却感觉像各自拥有专属系统一样安全、高效。
**我们相信:好的技术架构,应该让复杂的事情变得简单,让安全的事情变得自然。**
如果您的企业正在面临多租户、数据隔离、系统整合的挑战,不妨和BossAgents聊聊——我们用智能体技术,帮您把“数据墙”变成“护城河”。
BossAgents