技术博客
衡石技术博客是一个围绕数据分析和BI领域提供丰富实用的技术文章、案例分析和实战经验的博客平台。

免费试用

全部

帮助手册

API文档

课堂中心

技术博客

白皮书

多租户数据隔离实战:衡石科技如何保障企业级SaaS服务的数据安全?
作者:HENGSHI 时间:2026-03-06

多租户数据隔离实战:衡石科技如何保障企业级SaaS服务的数据安全?

在企业级SaaS领域,有一个永恒的命题:如何在共享的基础设施上,实现租户数据的绝对隔离?

对于集成衡石科技BI PaaS的SaaS厂商而言,这个问题变得更加复杂。因为你不仅要保障自己业务系统的数据安全,还要确保嵌入产品中的分析模块同样安全可靠。当数十家甚至数百家企业的数据在同一个平台流转,任何数据泄露或越权访问都可能引发灾难性后果。

衡石科技作为赋能SaaS厂商的BI PaaS平台,从架构设计的第一天起,就将多租户数据隔离作为核心考量。本文将深入解密衡石的多租户隔离实战经验,剖析从物理隔离到逻辑隔离、从存储层到应用层的全方位安全保障体系。


一、多租户隔离:SaaS模式的基石

在理解技术实现之前,我们需要先明确一个核心问题:多租户隔离到底要隔离什么?

1.1 隔离的三个层次

数据隔离:租户A不能看到租户B的任何数据。这是最基础的要求,也是最容易被理解的。

性能隔离:租户A的突发查询洪峰不应影响租户B的响应速度。在共享资源池中,如何避免“吵闹的邻居”是技术难点。

安全隔离:租户A的配置变更、模型修改不应影响租户B的系统稳定性。同时,要防范各类注入攻击和越权访问尝试。

1.2 SaaS厂商的困境

对于集成衡石的SaaS厂商,面临的挑战更为复杂:

  • 身份映射:你的用户登录后,如何让衡石知道他是谁、属于哪个租户、有什么权限?

  • 数据路由:同一个用户在不同租户下可能看到完全不同的数据,如何确保查询路由到正确的数据源?

  • 混合隔离需求:有的客户需要独享数据库(物理隔离),有的接受共享但逻辑隔离,如何灵活支持?

  • 运维复杂度:当租户数量从几十增长到几千时,隔离方案必须能线性扩展,不能成为运维噩梦。

衡石的多租户架构,正是为解决这些问题而生。


二、隔离方案的三层选择:从物理到逻辑

衡石提供三种层次的隔离方案,SaaS厂商可以根据客户需求、数据敏感度、预算等因素灵活选择或组合使用。

2.1 第一层:数据库级隔离(物理隔离)

适用场景:金融、医疗、政府等强监管行业,或对数据安全有极致要求的大客户。

实现方式:

  • 每个租户独享一个独立的数据库实例(可以是云数据库实例)

  • 租户间的数据在物理层面完全隔离,没有任何共享

  • 即使数据库层面出现漏洞,也不会导致跨租户数据泄露

衡石的支持:

  • 通过API动态创建租户时,可以指定独立的数据库连接信息

  • 查询引擎根据租户ID自动路由到对应的数据库

  • 支持异构数据源——不同租户可以使用不同类型的数据库

优点:安全性最高,性能隔离最彻底

缺点:成本高,管理复杂(每个租户需单独备份、监控)

2.2 第二层:Schema级隔离(逻辑隔离)

适用场景:大多数企业级SaaS场景,需要在安全性和成本之间取得平衡。

实现方式:

  • 所有租户共享同一个数据库实例

  • 每个租户拥有独立的Schema(或Database,取决于数据库类型)

  • 表结构相同,但数据物理存储在不同的Schema中

衡石的支持:

  • 在数据连接配置中,通过参数化Schema实现动态路由

  • 查询时自动注入正确的Schema名称

  • 支持Schema级别的备份和恢复

优点:成本较低,管理相对简单,安全性较高

缺点:数据库实例故障会影响所有租户

2.3 第三层:行级隔离(细粒度逻辑隔离)

适用场景:SaaS厂商自建数据仓库,所有租户数据存储在同一个表中。

实现方式:

  • 所有租户的数据存储在相同的表结构中

  • 每个表都有一个tenant_id字段标识数据归属

  • 所有查询自动附加WHERE tenant_id = ?条件

衡石的支持:

  • 在数据模型中配置租户字段映射

  • 查询引擎自动注入租户过滤条件

  • 支持行级安全策略(RLS),即使直接访问数据库也无法绕过

优点:成本最低,管理最简单,支持海量租户

缺点:需要严格的权限控制和查询改写,误配置可能导致数据泄露


三、技术实现:从认证到查询的全链路隔离

隔离不是单点的,而是贯穿用户请求的完整链路。衡石通过以下机制,确保每一层都万无一失。

3.1 认证层:租户身份的确定

用户访问嵌入的衡石分析模块时,首先需要确定身份。衡石支持两种模式:

模式一:SSO单点登录

  • SaaS厂商在用户登录时生成JWT令牌,包含用户ID、租户ID、角色等信息

  • 前端嵌入衡石组件时传递该令牌

  • 衡石验证令牌签名后,解析出租户身份

模式二:API代理模式

  • 所有请求经过SaaS厂商的后端代理

  • 厂商在代理层注入租户信息

  • 衡石只信任来自代理的请求

两种模式都确保:租户身份在请求入口就被确定,且无法伪造。

3.2 数据连接层:动态路由

衡石的数据连接管理支持参数化配置。例如,可以定义一个连接模板:

yaml

name: 客户数据连接type: mysqlhost: tenant.metadata.hostport:3306database:{tenant.metadata.database}username: tenant.metadata.usernamepassword:{tenant.metadata.password}

当租户A发起查询时,系统从租户元数据中读取对应的连接参数,动态建立连接。这意味着:

  • 不同租户可以连接完全不同的数据库

  • 即使在同一数据库中,也可以连接不同的Schema

  • 连接信息可以动态更新,无需重启服务

3.3 查询执行层:自动过滤

对于行级隔离场景,衡石的查询引擎会自动注入租户过滤条件。这个过程发生在SQL生成阶段:

用户问题:“上个月销售额”

生成的SQL(无隔离):

sql

SELECT SUM(amount) FROM sales WHERE date >= '2025-02-01'

实际执行的SQL(自动注入):

sql

SELECT SUM(amount) FROM sales WHERE date >= '2025-02-01' AND tenant_id = 'tenant_a'

这种注入发生在查询引擎内部,对上层用户完全透明。即使有经验的用户也无法绕过,因为过滤条件是在查询计划阶段强制添加的。

3.4 权限控制层:行级安全策略

为了防止直接数据库访问导致的数据泄露,衡石还支持在数据源层面配置行级安全策略。以PostgreSQL为例,可以创建策略:

sql

CREATE POLICY tenant_isolation_policy ON salesUSING (tenant_id = current_setting('app.current_tenant')::text);

这样,即使使用数据库客户端直接连接,如果没有设置正确的会话参数,也无法查询到任何数据。


四、性能隔离:避免“吵闹的邻居”

数据隔离只是第一步。在共享环境中,一个租户的突发查询可能影响其他租户的体验。衡石通过以下机制实现性能隔离:

4.1 查询队列与并发控制

衡石为每个租户维护独立的查询队列,并支持配置:

  • 最大并发查询数:防止单个租户耗尽连接池

  • 查询超时设置:自动终止执行过长的查询

  • 优先级调度:关键业务查询可以优先执行

4.2 资源组隔离

在支持资源组的计算引擎中(如ClickHouse、Snowflake),衡石可以自动将不同租户的查询路由到不同的资源组,实现CPU和内存的物理隔离。

4.3 缓存隔离

衡石的多级缓存系统也实现了租户隔离:

  • 缓存键自动包含租户ID,确保租户A不会命中租户B的缓存

  • 缓存容量按租户配额限制,防止某个租户占满缓存

  • 支持租户级别的缓存预热和清理


五、高级话题:跨租户分析与合规处理

在某些场景下,SaaS厂商的管理员需要跨租户分析(如统计所有租户的使用情况)。这需要在隔离和洞察之间找到平衡。

5.1 跨租户查询的受控开放

衡石支持特权模式,允许特定用户(如平台管理员)执行跨租户查询。但这一能力受到严格控制:

  • 需要双重认证

  • 所有跨租户查询记录审计日志

  • 支持数据脱敏,如屏蔽具体客户名称

5.2 租户数据的删除与合规

当客户不再续费或要求删除数据时,SaaS厂商需要彻底清除租户数据。衡石支持:

  • 软删除:标记租户为已删除,数据保留一定时间(应对误操作)

  • 硬删除:从数据库物理删除所有相关数据

  • 数据匿名化:保留分析价值但移除个人标识信息

所有删除操作都有完整日志,符合GDPR等合规要求。

5.3 加密与密钥管理

对于高敏感数据,衡石支持字段级加密和租户独立密钥:

  • 每个租户可以拥有独立的加密密钥

  • 敏感字段(如个人身份信息)在数据库中加密存储

  • 衡石在内存中解密,确保数据只在查询时可见


六、实战案例:某连锁零售SaaS的隔离方案

让我们通过一个实际案例,理解多租户隔离的完整落地。

客户背景:某连锁零售SaaS厂商,为数千家中小零售商提供门店管理系统。希望集成衡石BI,让每家零售商能分析自己的销售数据。

需求分析:

  • 大多数客户接受逻辑隔离,成本优先

  • 少数大客户要求物理隔离

  • 需要支持跨租户分析(平台视角)

  • 必须符合支付卡行业数据安全标准(PCI DSS)

实施方案:

  1. 分层隔离策略:

    1. 95%的普通客户:采用行级隔离,所有数据存储在共享表中,通过tenant_id隔离

    2. 5%的大客户:采用Schema级隔离,每个客户独立Schema

    3. 平台管理员:通过特权模式进行跨租户分析

  2. 认证集成:

    1. 用户登录SaaS后,生成JWT令牌包含租户ID

    2. 前端嵌入衡石时传递令牌

    3. 衡石解析令牌,确定租户身份

  3. 数据路由:

    1. 普通租户:路由到共享数据库,查询时自动添加tenant_id过滤

    2. 大租户:路由到独立Schema,通过参数化连接实现

  4. 性能隔离:

    1. 设置每个租户最大并发查询数为5

    2. 查询超时设为60秒

    3. 大租户独享资源组

  5. 安全增强:

    1. 支付相关字段使用租户独立密钥加密

    2. 所有查询记录审计日志

    3. 定期进行越权访问扫描

实施效果:

  • 零数据泄露事件

  • 租户响应时间波动小于10%

  • 运维成本可控(共享模式降低了90%的数据库管理负担)

  • 通过PCI DSS合规审计


七、未来展望:零信任架构下的数据隔离

随着安全威胁的演变,衡石也在持续升级隔离架构,向零信任模型演进:

  • 持续验证:不仅入口验证,每次数据访问都重新验证权限

  • 最小权限:默认拒绝,仅授予完成当前任务所需的最小权限

  • 微隔离:将隔离粒度从租户级别细化到用户级别、甚至数据行级别

  • 行为分析:监控异常访问模式,实时阻断潜在威胁


八、结语:安全是SaaS的生命线

对于SaaS厂商而言,数据安全不是可选项,而是生命线。一次数据泄露就可能摧毁多年积累的客户信任。

衡石科技通过多层次、可配置的多租户隔离方案,让SaaS厂商可以根据业务需求灵活选择隔离级别,在安全性和成本之间找到最佳平衡。无论是物理隔离的极致安全,还是行级隔离的轻量高效,衡石都能提供成熟的技术支持。

更重要的是,衡石将安全内化为架构基因,从认证、路由、查询到缓存,每一层都内置隔离机制,让SaaS厂商无需从零构建复杂的安全体系,而是可以专注于核心业务创新。

在数据价值日益凸显的今天,选择衡石,不仅是选择一个BI PaaS平台,更是选择了一个可靠的数据安全合作伙伴。


相关资讯
热门标签
衡石科技 衡石BI BI ChatBI BI数据分析 Agentic BI BI PaaS平台 企业级BI AI+BI HENGSHI SENSE BI工具 嵌入式BI BI Agent AI 指标平台 ISV/SAAS 厂商 BI平台 BI PaaS HENGSHI SENSE 6.0 AI Copilot AI Agent ChatBI解决方案 Data Agent 指标管理 BI系统 指标中台 对话式BI 传统BI 一站式BI分析平台 Chat2Metrics HENGSHI SENSE 6.1 BI报表 deepseek BI可视化 零代码BI 嵌入式分析 数据中台 可视化报表 多租户 应用模版市场 Deep Seek 大数据模型BI AI数据 交互式BI 语义层 BI解决方案 NL2SQL BI软件 智能问数 生态伙伴 crm 生成式BI NL2DSL 衡石ChatBot 多源异构数据 Agentic Analytics OA HQL Gen AI ChatBot 衡石API 自助式BI React SDK 爱分析 问答式BI SDK

丰富的资源 完整的生态

邀您成为衡石伙伴