数据脱敏

背景信息

数据脱敏 YAML 配置方式良好的可读性,通过 YAML 格式,能够快速地理解脱敏规则之间的依赖关系,ShardingSphere 会根据 YAML 配置,自动完成 ShardingSphereDataSource 对象的创建,减少用户不必要的编码工作。

参数解释

  1. rules:
  2. - !MASK
  3. tables:
  4. <table_name> (+): # 脱敏表名称
  5. columns:
  6. <column_name> (+): # 脱敏列名称
  7. maskAlgorithm: # 脱敏算法
  8. # 脱敏算法配置
  9. maskAlgorithms:
  10. <mask_algorithm_name> (+): # 脱敏算法名称
  11. type: # 脱敏算法类型
  12. props: # 脱敏算法属性配置
  13. # ...

算法类型的详情,请参见内置脱敏算法列表

操作步骤

  1. 在 YAML 文件中配置数据脱敏规则,包含数据源、脱敏规则、全局属性等配置项;
  2. 调用 YamlShardingSphereDataSourceFactory 对象的 createDataSource 方法,根据 YAML 文件中的配置信息创建 ShardingSphereDataSource。

配置示例

数据脱敏 YAML 配置如下:

  1. dataSources:
  2. unique_ds:
  3. dataSourceClassName: com.zaxxer.hikari.HikariDataSource
  4. driverClassName: com.mysql.jdbc.Driver
  5. jdbcUrl: jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
  6. username: root
  7. password:
  8. rules:
  9. - !MASK
  10. tables:
  11. t_user:
  12. columns:
  13. password:
  14. maskAlgorithm: md5_mask
  15. email:
  16. maskAlgorithm: mask_before_special_chars_mask
  17. telephone:
  18. maskAlgorithm: keep_first_n_last_m_mask
  19. maskAlgorithms:
  20. md5_mask:
  21. type: MD5
  22. mask_before_special_chars_mask:
  23. type: MASK_BEFORE_SPECIAL_CHARS
  24. props:
  25. special-chars: '@'
  26. replace-char: '*'
  27. keep_first_n_last_m_mask:
  28. type: KEEP_FIRST_N_LAST_M
  29. props:
  30. first-n: 3
  31. last-m: 4
  32. replace-char: '*'

然后通过 YamlShardingSphereDataSourceFactory 的 createDataSource 方法创建数据源。

  1. YamlShardingSphereDataSourceFactory.createDataSource(getFile());

相关参考