SphereEx 技术指纹
双端接入,列级加密技术脉络可追溯。
JDBC 在 Java 应用进程内处理数据访问,Proxy 以独立服务承接数据库协议连接。列级透明加密通过 SQL 解析、字段规则与结果处理,将应用逻辑字段映射到实际存储字段。两类接入方式及字段保护机制,均有开源历史和版本文档可供追溯。
JDBC 与 Proxy:两种独立的接入方式
JDBC 接入组件嵌入 Java 应用,在 JDBC 调用链路中处理 SQL,并直接连接后端数据库。Proxy 部署为独立服务,通过受支持的数据库协议承接多语言应用与工具连接。两端各自完成请求处理并返回结果,可独立使用,也可在同一数据环境中组合使用。
JDBC
应用内接入
应用侧集成与发布
Java 应用进程
Java 业务代码 / ORM
通过 JDBC 接口访问数据
JDBC 调用
↓
JDBC 接入组件
SQL 处理 · 按规则加密
后端数据库连接
↓
Proxy
独立服务接入
服务侧部署与运维
多语言应用 / 数据库工具
Java、Go、Python 及 CLI / GUI 工具
受支持的数据库协议
↓
应用进程外的独立服务
Proxy 接入组件
协议处理 · SQL 处理 · 按规则加密
后端数据库连接
↓
既有数据库 / 数据库集群
两条路径分别访问,结果沿各自路径返回
数据库协议、SQL、驱动与工具范围,以对应版本文档为准。
查看技术架构 →通过 SQL 改写,连接逻辑列与密文列
加密组件解析 SQL、识别表与字段,并依据列规则关联逻辑列和实际存储列。写入时,通过 SQL 改写与字段值加密,将受保护内容存入密文列。读取时,按规则处理查询与返回结果;使用可逆算法时,对密文解密并恢复逻辑字段。保护对象是配置指定的列,而非整个数据库存储。
业务应用
使用逻辑字段提交 SQL
请求处理
↓
JDBC 应用内 / Proxy 独立服务内
按所选接入方式处理
- 01SQL 解析理解语句、表、字段与参数
- 02字段识别关联表元数据与列级配置
- 03规则匹配确定列映射与加解密算法
列级规则
逻辑列与密文列映射 · 算法与密钥配置
配置输入,作用于字段匹配、改写与加解密
写入路径
SQL 改写+参数加密
映射存储字段,转换指定字段值
↓
数据库执行写入
受保护字段存入密文列
读取路径
改写查询并读取密文
按规则查询密文列或辅助列
↓
结果解密与字段恢复
使用可逆算法时还原字段值
应用使用 phone,数据库保存 phone_cipher
应用逻辑字段
phone = '13800000000'
虚构手机号
字段映射+加密 →
数据库密文列
phone_cipher = '[密文]'
示意密文,非实际加密结果
适用范围
SQL 类型、查询算子、存量字段转换及接入条件,以对应版本的支持范围为准。安全边界
解密结果与访问授权分别受相应配置约束,传输保护及密钥管理需按安全方案落实。双端接入与列级加密的形成脉络
三个关键节点,记录应用内接入、独立代理与字段保护能力的形成和扩展。
2016
应用内接入
Sharding-JDBC 开源
项目以 Sharding-JDBC 名称开源,从 Java JDBC 层提供数据分片,在应用进程内增强数据库访问,形成早期的应用内接入方式。
2018
独立代理接入
增加独立 Proxy 接入
Sharding-Proxy 以独立服务提供数据库协议入口,支持 MySQL 命令行与图形客户端。项目在应用内接入之外增加代理接入,为不同语言应用与工具提供访问路径。
2019
SQL 改写与字段保护
通过 SQL 改写实现列级加密
通过 SQL 解析与改写,将应用使用的逻辑列映射到数据库密文列,配合字段值加密与查询结果处理,为配置指定的列提供保护。应用沿用逻辑字段访问,数据库按列级规则保存受保护数据。
项目与公司的完整发展历程见技术演进。
查看技术演进 →