电话咨询
联系电话: 18565399650
微信联系
返回顶部
function isolateData(tenantId) {
    const schema = `tenant_${tenantId}`;
    return database.connect(schema);
}

class DataIsolation {
    private tenantId: string;
    private schema: string;

    constructor(tenantId: string) {
        this.tenantId = tenantId;
        this.schema = `tenant_${tenantId}`;
    }
}
Enterprise Security

多租户ERP
数据隔离技术架构

企业级多层安全隔离方案,确保每个租户数据100%独立与安全

100%
数据隔离
256位
AES加密
5层
安全防护
99.99%
可用性

三种数据隔离方案对比

选择最适合您的隔离策略

共享数据库方案

所有租户共用一个数据库,通过TenantID字段区分

成本最低
易于维护
安全性较低
性能瓶颈
SELECT * FROM orders
WHERE tenant_id = '001';
推荐方案

独立Schema方案

每个租户独立Schema,共享数据库实例

高安全性
成本适中
易于扩展
性能优异
USE tenant_001;
SELECT * FROM orders;

独立数据库方案

每个租户完全独立的数据库实例

最高安全性
完全隔离
成本最高
维护复杂
HOST: db-tenant-001
SELECT * FROM orders;

五层安全防护架构

多层次纵深防御,确保数据绝对安全

1

网络层隔离

VPC + 子网隔离 + 安全组

VPC隔离
私有网络隔离
防火墙
入侵检测防御
DDoS防护
流量清洗
2

应用层隔离

独立域名 + SSL证书 + JWT认证

独立域名
tenant.domain.com
身份认证
JWT + OAuth2.0
SSL加密
TLS 1.3传输
3

服务层隔离

微服务架构 + 服务网格 + API网关

服务隔离
独立容器实例
API限流
按租户QPS控制
熔断降级
故障隔离保护
4

数据库层隔离

独立Schema + 连接池隔离 + 读写分离

独立Schema
物理级别隔离
连接隔离
独立连接池
权限控制
最小权限原则
5

存储层隔离

加密存储 + 备份隔离 + 审计日志

数据加密
AES-256加密
独立备份
异地容灾
操作审计
全链路追踪

核心技术实现

基于Spring Boot的多租户数据隔离实现

TenantContextHolder.java
public class TenantContextHolder {
    private static final ThreadLocal<String> tenantId =
        new ThreadLocal<>();

    public static void setTenantId(String id) {
        tenantId.set(id);
    }

    public static String getTenantId() {
        return tenantId.get();
    }

    public static void clear() {
        tenantId.remove();
    }
}
TenantInterceptor.java
@Component
public class TenantInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request,
                              HttpServletResponse response,
                              Object handler) {
        // 从请求头获取租户ID
        String tenantId = request.getHeader("X-Tenant-ID");

        if (tenantId != null) {
            TenantContextHolder.setTenantId(tenantId);
        }
        return true;
    }
}
DataSourceRouter.java
public class DataSourceRouter extends AbstractRoutingDataSource {

    @Override
    protected Object determineCurrentLookupKey() {
        // 根据租户ID动态切换数据源
        String tenantId = TenantContextHolder.getTenantId();
        return "tenant_" + tenantId;
    }
}

企业级安全认证体系

多重认证 + 全链路加密 + 实时监控

身份认证

  • JWT Token认证
  • OAuth 2.0授权
  • 双因素认证(2FA)
  • SSO单点登录

数据加密

  • AES-256数据加密
  • TLS 1.3传输加密
  • 敏感字段脱敏
  • 密钥定期轮换

安全审计

  • 操作日志记录
  • 异常行为检测
  • 实时监控告警
  • 合规性审计报告

企业级数据安全保障

俭俭AI-ERP采用业界领先的多租户数据隔离技术
五层防护 + 全程加密 + 实时审计,让您的数据绝对安全