博客
关于我
开源分布式中间件 DBLE Schema.xml 配置解析
阅读量:618 次
发布时间:2019-03-13

本文共 1797 字,大约阅读时间需要 5 分钟。

DBLE技术深入解析

DBLE(Distributed Block Level Encryption)项目旨在为分布式数据库引入块级加密能力,提供多级安全防护。本文将从配置文件和核心组件的角度,详细介绍DBLE的工作原理及实践应用。

1. DBLE项目概述

DBLE是一个专注于数据安全的开源数据库中间件。其核心功能包括表级加密、列级加密、行级加密,以及基于定时任务的自动加密/解密操作。DBLE的应用场景主要涵盖敏感数据保护(如金融、医疗等行业),以及对商业数据库的安全性要求较高的企业环境。


2. DBLE主配置文件解析

DBLE的核心配置文件分布在conf目录下,主要涉及以下几个文件:

  • schema.xml:定义数据库的分片策略,包括表的分片方式、分片节点配置等。
  • rule.xml:配置分片算法规则,决定具体使用的分片策略。
  • server.xml:定义DBLE的运行参数,包括端口设置、定时任务配置、用户认证等。
  • datahost.xml:配置数据主机( Data Host,简称DH)的群组管理,包含每个DH的连接信息、负载均衡设置等。

通过合理配置这些文件,可以实现对数据库表结构的动态管理,并支持多层级加密策略的划分。


3. schema.xml详解

schema.xml是DBLE的核心配置文件,负责将逻辑数据库与物理数据库之间建立映射关系。其主要作用是定义如何将一个逻辑表分配到多个物理数据库中,并指定具体的分片策略。

3.1 XML结构解析

schema.xml采用了基于XML的耦合方式定义数据库分片策略。其主要包含以下标签:

  • schema:定义一个逻辑数据库。

    • table:定义表的分片配置,支持以下属性:
      • name:表名。
      • primaryKey:主键字段名称。
      • type:分片类型,可选值包括:global(全局分片)、sharding-by-date(按日期分片)等。
      • dataNode:指定分片表所在的数据节点(数据主机,Data Node,简称DN)。
  • dataNode:定义单独的数据节点,包含以下属性:

    • name:数据节点名称。
    • dataHost:绑定的数据主机名称。
    • database:所属数据库。

3.2ibling配置示例

以下为DBLE schema.xml的一个典型配置示例:

3.3 分片规则解读

schema.xml中,表的分片规则主要由以下参数决定:

  • dataNode:决定表的分片节点。无入侵分片时,所有数据片分布在分布式数据节点上。
  • rule:定义具体的分片规则,例如sharding-by-date,表示按日期分片。
  • encryption:定义字段加密策略,可设置为column_level,实现列级加密。

  • 4. 分片与加密的协同配置

    DBLE支持与其他开源数据库(如MySQL、PostgreSQL)集成,提供高级数据安全功能。通过schema.xmlrule.xml的灵活配置,管理员可以根据具体需求实现以下场景:

  • 动态分片:基于数据库负载或时间窗口,自动调整分片策略。
  • 混合加密:在列级加密的基础上,定义部分字段需要表级加密或其他高级加密方式。
  • 跨节点读写规则:在datahost.xml中,定义不同数据主机的读写权限策略,保障数据的双向安全性。

  • 5. 高级分片与加密方案

    在实际应用中,schema.xml的配置可以非常灵活。例如,通过如下配置实现多层级加密和分片策略:

    5.1 数据分片与加密结合

    通过rule.xml的支持,DBLE可以实现复杂的分片规则和加密策略。此外,datahost.xml中可以通过定义writehostreadhost规则,实现对不同数据节点的访问控制。


    总结

    schema.xml是DBLE配置中的核心文件,负责定义数据库的分片策略和加密规则。通过合理配置该文件,可以实现对数据库表的灵活分片和高级加密需求。对于刚接触DBLE的开发者,可以参考官方文档和示例配置文件,逐步熟悉其内部逻辑和使用场景。

    转载地址:http://qnraz.baihongyu.com/

    你可能感兴趣的文章
    MySQL 在并发场景下的问题及解决思路
    查看>>
    MySQL 基础架构
    查看>>
    MySQL 基础模块的面试题总结
    查看>>
    MySQL 备份 Xtrabackup
    查看>>
    mYSQL 外键约束
    查看>>
    mysql 多个表关联查询查询时间长的问题
    查看>>
    mySQL 多个表求多个count
    查看>>
    mysql 多字段删除重复数据,保留最小id数据
    查看>>
    MySQL 多表联合查询:UNION 和 JOIN 分析
    查看>>
    MySQL 大数据量快速插入方法和语句优化
    查看>>
    mysql 如何给SQL添加索引
    查看>>
    mysql 字段区分大小写
    查看>>
    mysql 字段合并问题(group_concat)
    查看>>
    mysql 字段类型类型
    查看>>
    MySQL 字符串截取函数,字段截取,字符串截取
    查看>>
    MySQL 存储引擎
    查看>>
    mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
    查看>>
    MySQL 存储过程参数:in、out、inout
    查看>>
    mysql 存储过程每隔一段时间执行一次
    查看>>
    mysql 存在update不存在insert
    查看>>