背景
Apache ShardingSphere 通过对用户输入的 SQL 进行解析,并依据用户提供的加密规则对 SQL 进行改写,从而实现对原文数据进行加密,并将原文数据(可选)及密文数据同时存储到底层数据库。 在用户查询数据时,它仅从数据库中取出密文数据,并对其解密,最终将解密后的原始数据返回给用户。 Apache ShardingSphere 自动化 & 透明化了数据加密过程,让用户无需关注数据加密的实现细节,像使用普通数据那样使用加密数据。 此外,无论是已在线业务进行加密改造,还是新上线业务使用加密功能,Apache ShardingSphere 都可以提供一套相对完善的解决方案。
解决方案
参考官方文档分两种场景
- 新上线业务
- 已上线业务
本文首先介绍新上线业务的新操,它相对已上线业务简单许多
新上线业务
版本信息
- SpringBoot 2
- ShardingSphere 5
- MySQL 8
引入依赖
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
<version>5.0.0-beta</version>
</dependency>
配置文件:
spring:
profiles:
include: common-local
shardingsphere:
datasource:
names: write-ds,read-ds-0
write-ds:
jdbcUrl