场景二:数据加密 #
此场景利用 SphereEx-Console(SphereEx 企业数据服务可视化平台)安装 SphereEx-DBPlusEngine 集群,通过SphereEx-Console 方式快速实现数据加密。
数据加密场景仅限于利用 SphereEx-Console 快速构建一个本地 SphereEx-DBPlusEngine 集群,并链接一个 MySQL 数据库,实现数据加密的场景(不包含其他组件,以及数据库的安装)。
操作步骤 #
准备资源环境 #
实例 | IP 地址 | 服务端口 | 备注 | |
---|---|---|---|---|
1 | SphereEx-Boot | 127.0.0.1 | / | SphereEx-Boot 工具 |
2 | SphereEx-Console | 127.0.0.1 | 8088 | SphereEx-Console 工具 |
3 | SphereEx-DBPlusEngine | 127.0.0.1 | 3212 | SphereEx-DBPlusEngine 集群 |
4 | MySQL 8.0 | 127.0.0.1 | 3306 | 通过 SphereEx-Boot 安装 Sphere-Console 所需数据库(主库) |
5 | MySQL 8.0 | 127.0.0.1 | 3307 | 通过 SphereEx-Boot 安装 Sphere-Console 所需数据库(从库) |
6 | ZooKeeper | 127.0.0.1 | 3666/3667 | ZooKeeper |
7 | MySQL 8.0 | / | 13306 | 用于加密的数据库 (需提前准备) |
说明:操作时需要替换为自己的 IP 地址、登录账号和密码。
安装 SphereEx-Boot #
请参见场景一:安装 SphereEx-Boot。
如果已经安装 SphereEx-Boot ,此步骤可忽略。
安装 SphereEx-Console #
安装 SphereEx-Console 前,确保操作系统已经安装 JDK 1.8。
1. 查看JDK版本 #
# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
2. 导出配置文件 #
# mkdir console
# cd console
# spex console export
# ls console_install.yaml
console_install.yaml
3. 修改配置文件 #
按照如下参数值进行修改,或者按照实际的环境修改,未提及参数保持默认即可。
# vi console_install.yaml
###################### SphereEx-Console Deploy Configuration Example #########################
# This file is an example configuration file.
# Here you can configure for the SphereEx-Console deploy.
# Deploy to remote must use ssh
#===================== Mysql Deploy Configuration ========================
# Required, Whether to install a new Mysql server
# If true Mysql master-slave will be installed
install_mysql: true
# If install Mysql is true the param is required
mysql:
master:
# install on local or remote
file: /root/console/mysql.tar.xz
host: 127.0.0.1
listen_port: 3306
ssh_user: root
ssh_password: root
ssh_port: 22
install_dir: /root/console
slave:
# install on local or remote
host: 127.0.0.1
file: /root/console/mysql.tar.xz
# If two Mysql servers are on the same machine, listen port must be different
listen_port: 3307
ssh_user: root
ssh_password: root
ssh_port: 22
install_dir: /root/console
#==================== Console Deploy Configuration =======================
console:
# install on local or remote
ssh_user: root
ssh_password: root
ssh_port: 22
host: 127.0.0.1
# Required, SphereEx-Console file. for example:/root/console/SphereEx-Console.tar.gz
file: /root/console/sphereex-console.1.1.0.tar.gz
# Required, deployment directory, remote or local
install_dir: /root/console
# Required, deployment directory, remote or local
console_config:
server:
port: 8088
# software home path
software:
home: /opt/software
4. 执行安装 console 命令 #
# spex console install -n console_demo -c console_install.yaml
create install directory
host:127.0.0.1 status:success
install mysql8
host:127.0.0.1 status:success
push mysql conf
host:127.0.0.1 status:success
create install directory
host:127.0.0.1 status:success
install mysql8
host:127.0.0.1 status:success
push mysql conf
host:127.0.0.1 status:success
start mysql
host:127.0.0.1 status:success
start mysql
host:127.0.0.1 status:success
push mysql shell
host:127.0.0.1 status:success
opt shell
host:127.0.0.1 status:success
push mysql shell
host:127.0.0.1 status:success
opt shell
host:127.0.0.1 status:success
create install directory
host:127.0.0.1 status:success
push console file
host:127.0.0.1 status:success
install console
host:127.0.0.1 status:success
push console yml
host:127.0.0.1 status:success
remove install file
host:127.0.0.1 status:success
pull console sql
host:127.0.0.1 status:success
pull console sql data
host:127.0.0.1 status:success
push console sql
host:127.0.0.1 status:success
init console mysql task
host:127.0.0.1 status:success
5. 启动console。 #
进入 console 的安装目录,执行启动命令
# cd sphereex-console-1.1.0
# bin/start.sh
Starting the SphereEx-Console ...
Please check the STDOUT file: /root/console/sphereex-console-1.1.0/logs/stdout.log
6. 访问 console #
使用服务器的外网 IP 地址加端口通过浏览器访问 SphereEx-Console 平台,使用配置文件中账号和密码登录。
例如:127.0.0.1:8088
默认用户名: admin
默 认 密 码: admin
使用 SphereEx-Console 创建集群 #
此部分内容主要介绍使用 SphereEx-Console 如何创建 SphereEx-DBPlusEngine 集群,以及实现数据加密。
操作步骤 #
1. 注册主机 #
左侧导航栏选择 “资源-主机”,点击 “注册主机”,填写所需信息,点击 “确定”,完成注册主机。
2. 创建治理中心 #
将 ZooKeeper 的安装包上传至 /opt/software 路径下
左侧导航栏选择 “资源-治理中心”,点击 “新建”,填写所需信息,点击 “确定”,完成治理中心的创建。
3. 创建集群 #
将 SphereEx-DBPlusEngine 的安装包上传至 /opt/software 路径下。
填写必要的信息,治理中心选择之前创建的治理中心。
所需信息填写完成后,点击 “安装” 按钮。
“安装” 按钮变为灰色,操作结果显示 “安装成功” ,说明集群创建成功,点击确定,返回集群列表。
在“注册存储节点” 界面,选择需要做分片的数据库,并填写所需的信息。
点击探活,探活成功后,点击确定。
使用相同方法注册第二个数据库。
4. 创建逻辑库 #
在左侧导航栏点击“逻辑库”,进入逻辑库列表,选择集群名称 “集群test001”, 点击 “创建逻辑库”。
输入“逻辑库名称”,选择存储节点,点击符号 “>”,点击确定,将数据库和集群关联。
5. 创建表 #
选择 “对象”,选择集群和逻辑库,点击 “新建表” 。
根据参考示例,输入建表语句,点击“确定”。
sql> CREATE TABLE t_encrypt(
id INT(8),
mobile VARCHAR(50),
id_card_no VARCHAR(50)
);
6. 创建加密规则 #
选择创建的数据表:t_encrypt,点击“添加加密”–>选择“常规”加密–>点击“添加加密插件”
选择“加密算法”,选择 “需要加密的列”,勾选“存储明文”,点击“添加”–>点击“确定”。
7. 插入数据 #
登录 SphereEx-DBPlusEngine 集群,执行插入数据命令。
# mysql -uroot -proot -P3212 -h127.0.0.1
sql> use logical001;
sql> INSERT INTO t_encrypt (id, mobile_plain, id_card_no)
-> VALUES (1, 18236483857, 220605194709308170),
-> (2, 15686689114, 360222198806088804),
-> (3, 13983621809, 430204195612042092);
Query OK, 3 rows affected (0.02 sec)
8. 查看数据加密结果 #
登录 SphereEx-DBPlusEngine 集群, 查看数据是密文显示。
说明:如果需要 SphereEx-DBPlusEngine 集群中显示明文,不勾选 “是否使用加密列查询” 即可。
# mysql -uroot -proot -P3212 -h127.0.0.1
sql> use logical001;
sql> SELECT * FROM t_encrypt;
+------+----------------------------------+--------------------+
| id | mobile | id_card_no |
+------+----------------------------------+--------------------+
| 1 | 6f655ea3b73e32d54ae2d34d672c0c55 | 220605194709308170 |
| 2 | a2193d0e8de4c2c4f166448e22ba97ae | 360222198806088804 |
| 3 | 3cf1fd442630071ca664bbd5e683f7f6 | 430204195612042092 |
+------+----------------------------------+--------------------+
3 rows in set (0.00 sec)
登录 MySQL 中查看数据是密文显示,见 mobile_cipher。
因为勾选了 “存储明文”,手机号一列在数据库中同时保留了明文存储,见 mobile_plain。
# mysql -uroot -proot -P13306 -h127.0.0.1
sql> use ss03;
sql> select * from t_encrypt;
+------+----------------------------------+--------------+--------------------+
| id | mobile_cipher | mobile_plain | id_card_no |
+------+----------------------------------+--------------+--------------------+
| 1 | 6f655ea3b73e32d54ae2d34d672c0c55 | 18236483857 | 220605194709308170 |
| 2 | a2193d0e8de4c2c4f166448e22ba97ae | 15686689114 | 360222198806088804 |
| 3 | 3cf1fd442630071ca664bbd5e683f7f6 | 13983621809 | 430204195612042092 |
+------+----------------------------------+--------------+--------------------+