场景二:数据加密 #
此场景利用 SphereEx-Console(SphereEx 企业数据服务可视化平台)安装 SphereEx-DBPlusEngine 集群,通过SphereEx-Console 方式快速实现数据加密。
数据加密场景仅限于利用 SphereEx-Console 快速构建一个本地 SphereEx-DBPlusEngine 集群,并链接一个 MySQL 数据库,实现数据加密的场景(不包含其他组件,以及数据库的安装)。
准备资源环境 #
| 实例 | IP 地址 | 服务端口 | 备注 | |
|---|---|---|---|---|
| 1 | SphereEx-Console | 127.0.0.1 | 8088 | SphereEx-Console 工具 |
| 2 | SphereEx-DBPlusEngine | 127.0.0.1 | 3212 | SphereEx-DBPlusEngine 集群 |
| 3 | MySQL 8.0 | 127.0.0.1 | 3306 | 通过 SphereEx-Boot 安装 Sphere-Console 所需数据库(主库) |
| 4 | MySQL 8.0 | 127.0.0.1 | 3307 | 通过 SphereEx-Boot 安装 Sphere-Console 所需数据库(从库) |
| 5 | ZooKeeper | 127.0.0.1 | 3666/3667 | ZooKeeper |
| 6 | MySQL 8.0 | / | 13306 | 用于加密的数据库 (需提前准备) |
说明:操作时需要替换为自己的 IP 地址、登录账号和密码。
安装 SphereEx-Console #
安装 SphereEx-Console 前,确保操作系统已经安装 JDK17及以上版本。
手动安装 SphereEx-Console #
手动安装 SphereEx-Console 请参考安装 SphereEx-Console
访问 SphereEx-Console #
使用服务器的外网 IP 地址加端口通过浏览器访问 SphereEx-Console 平台,使用配置文件中账号和密码登录。
例如:127.0.0.1:8088
默认用户名: admin
默 认 密 码: admin


使用 SphereEx-Console 创建集群 #
此部分内容主要介绍使用 SphereEx-Console 如何创建 SphereEx-DBPlusEngine 集群,以及实现数据加密。
操作步骤 #
1. 创建集群 #
点击菜单【集群管理】进入集群列表页面;点击【注册】按钮添加proxy集群

添加Proxy集群时,填写自定义集群名称,集群描述,Proxy集群的计算节点位置(Proxy的ip地址),计算节点端口(Proxy的端口号),计算节点用户名(Proxy用户名),计算节点密码(Proxy密码),点击确定添加Proxy集群

点击左侧【集群名称】进入集群详情页面;点击【存储节点】tab标签进入列表页面,点击【注册存储节点】按钮前往添加页面。

在注册存储节点表单页面,选择存储节点所属实例(底层数据库资源),然后选择需要操作的数据库,填写自定义节点名称,点击确定添加存储节点(可先点击【探活】按钮验证存储节点是否存活)

2. 创建逻辑库 #
在集群管理页面,可点击左侧的集群名称,展开菜单栏,点击【逻辑库】进入集群逻辑库管理页面,点击【新建】按钮创建逻辑库

在新建逻辑库表单中,填写自定义逻辑库名称,将可选节点勾选后移动到右侧已选节点后,点击【确定】创建逻辑库


3. 创建表 #
在集群管理页面,可点击左侧的集群名称,展开菜单栏,点击【逻辑库】-【表】进入列表页面

根据参考示例,输入建表语句,点击“确定”。
sql> CREATE TABLE t_encrypt(
id INT(8),
mobile VARCHAR(50),
id_card_no VARCHAR(50)
);

6. 创建加密规则 #
选择创建的数据表:t_encrypt,点击【加密】切换tab页面,点击【新建】创建加密规则

选择加密列,默认算法策略,点击添加

确认加密列配置项后点击【下一步】

勾选要操作的数据行,点击【校验DDL】按钮,等待校验DDL成功结果,再次点击【执行DDL】

等待执行DDL成功结果,点击【批量加密】按钮开启洗数

查看洗数任务的状态以及进度

勾选操作列,选择批量关闭明文查询,点击【下一步】按钮

7. 插入数据 #
登录 SphereEx-DBPlusEngine 集群,执行插入数据命令。
# mysql -uroot -proot -P3212 -h127.0.0.1
sql> use encrypt_db;
sql> INSERT INTO t_encrypt (id, mobile, id_card_no) VALUES (1, 18236483857, 220605194709308170),(2, 15686689114, 360222198806088804),(3, 13983621809, 430204195612042092);
Query OK, 3 rows affected (0.02 sec)
8. 查看数据加密结果 #
登录 SphereEx-DBPlusEngine 集群, 查看数据。
# mysql -uroot -proot -P3212 -h127.0.0.1
sql> use encrypt_db;
sql> SELECT * FROM t_encrypt;
+------+----------------------------------+--------------------+
| id | mobile | id_card_no |
+------+----------------------------------+--------------------+
| 1 | 18236483857 | 220605194709308170 |
| 2 | 15686689114 | 360222198806088804 |
| 3 | 13983621809 | 430204195612042092 |
+------+----------------------------------+--------------------+
3 rows in set (0.00 sec)
登录 MySQL 中查看数据是密文显示,见 mobile_cipher。
因为勾选了 “存储明文”,手机号一列在数据库中同时保留了明文存储,见 mobile。
# mysql -uroot -proot -P13306 -h127.0.0.1
sql> use encrypt_db;
sql> select * from t_encrypt;
+------+----------------------------------+--------------+--------------------+
| id | mobile | id_card_no | mobile_cipher
+------+----------------------------------+--------------+--------------------+
| 1 | 18236483857 | 220605194709308170 | Zpi7hvr7k/mP2koPNmx3GQ==
| 2 | 15686689114 | 360222198806088804 | gYvnH7GYSSo5kyS2J45/Yg==
| 3 | 13983621809 | 430204195612042092 | SwCLKIoOvHIiDOML5yZHpw==
+------+----------------------------------+--------------+--------------------+