Logo
数据库防火墙

背景信息 #

通过 YAML 格式配置数据库防火墙,能够快速地理解数据库防火墙规则之间的依赖关系,DBPlusEngine 会根据 YAML 配置,自动完成对象的创建,减少用户不必要的编码工作。

参数解释 #

databaseFirewall:
  strategies: # 策略
    risk_dml: # 策略名称
      matchingAlgorithmNames: # 匹配算法列表
        - risk_dml_algorithm
      actionAlgorithmNames: #动作算法列表
        - log_action
        - block_action
      objects: # 生效对象列表
        - sharding_db.*
  matchingAlgorithms: # 匹配算法配置
    risk_dml_algorithm:
      type: RISK_DML
      props:
        full-table-update: true
        full-table-delete: true
  actionAlgorithms: # 匹配算法配置
    block_action:
      type: BLOCK
    log_action:
      type: LOG
      props:
        log-level: ERROR

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

操作步骤 #

  1. 在 YAML 文件中配置数据库防火墙规则,包含数据源、数据库防火墙规则、全局属性等配置项;
  2. 根据 YAML 文件中的配置信息创建对象。

配置示例 #

数据脱敏 YAML 配置如下:

dataSources:
  unique_ds:
    dataSourceClassName: com.zaxxer.hikari.HikariDataSource
    driverClassName: com.mysql.jdbc.Driver
    jdbcUrl: jdbc:mysql://localhost:3306/demo_ds?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
    username: root
    password:

rules:
- DATABASEFIREWALL
  strategies: 
    risk_dml:
      matchingAlgorithmNames: 
        - risk_dml_algorithm
      actionAlgorithmNames: 
        - log_action
        - block_action
      objects: 
        - sharding_db.*
  matchingAlgorithms: 
    risk_dml_algorithm:
      type: RISK_DML
      props:
        full-table-update: true
        full-table-delete: true
  actionAlgorithms:
    block_action:
      type: BLOCK
    log_action:
      type: LOG
      props:
        log-level: ERROR