Logo
场景二:数据加密

场景二:数据加密 #

此场景利用 SphereEx-Console(SphereEx 企业数据服务可视化平台)安装 SphereEx-DBPlusEngine 集群,通过SphereEx-Console 方式快速实现数据加密。

数据加密场景仅限于利用 SphereEx-Console 快速构建一个本地 SphereEx-DBPlusEngine 集群,并链接一个 MySQL 数据库,实现数据加密的场景(不包含其他组件,以及数据库的安装)。

操作步骤 #

创建数据加密流程

准备资源环境 #

实例IP 地址服务端口备注
1SphereEx-Boot127.0.0.1/SphereEx-Boot 工具
2SphereEx-Console127.0.0.18088SphereEx-Console 工具
3SphereEx-DBPlusEngine127.0.0.13212SphereEx-DBPlusEngine 集群
4MySQL 8.0127.0.0.13306通过 SphereEx-Boot 安装
Sphere-Console 所需数据库(主库)
5MySQL 8.0127.0.0.13307通过 SphereEx-Boot 安装
Sphere-Console 所需数据库(从库)
6ZooKeeper127.0.0.13666/3667ZooKeeper
7MySQL 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

Console 登录页

Console 概览页

使用 SphereEx-Console 创建集群 #

此部分内容主要介绍使用 SphereEx-Console 如何创建 SphereEx-DBPlusEngine 集群,以及实现数据加密。

操作步骤 #

Console 创建集群

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 |
+------+----------------------------------+--------------+--------------------+