数据加密

    1. 启动 MySQL 服务
    2. 创建 MySQL 数据库(参考 ShardingProxy 数据源配置规则)
    3. 为 ShardingProxy 创建一个拥有创建权限的角色或者用户
    4. 启动 Zookeeper 服务 (为了持久化配置)
    1. 添加 和 authentication 配置参数到 server.yaml (请参考相关 example 案例)
    1. 连接到 ShardingProxy
    2. 创建分布式数据库
    1. 使用新创建的数据库
    1. USE encrypt_db;
    1. 配置数据源信息
    1. ADD RESOURCE ds_0 (
    2. HOST=127.0.0.1,
    3. PORT=3306,
    4. DB=ds_0,
    5. USER=root,
    6. );
    1. 创建加密表
    1. 创建加密规则
    1. CREATE ENCRYPT RULE t_encrypt (
    2. (NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME=AES,PROPERTIES('aes-key-value'='123456abc'))),
    3. (NAME=order_id, CIPHER =order_cipher,TYPE(NAME=MD5))
    4. ));
    1. 修改加密规则
    1. CREATE ENCRYPT RULE t_encrypt (
    2. COLUMNS(
    3. ));
    1. 删除加密规则
    1. 删除数据源
    1. DROP RESOURCE ds_0;
    1. 删除分布式数据库
    1. DROP DATABASE encrypt_db;
    1. 当前, DROP DATABASE 只会移除逻辑的分布式数据库,不会删除用户真实的数据库。
    2. DROP TABLE 会将逻辑分片表和数据库中真实的表全部删除。