更新时间:2025-08-19 GMT+08:00
分享

配置RDS for MySQL实例动态脱敏

功能简介

动态脱敏是数据库在发送给客户端的时候,对数据进行脱敏的一种安全技术手段。RDS for MySQL的动态脱敏功能支持通过添加脱敏规则实现指定库、表、列对数据进行脱敏。

图1 拓扑图

开启动态脱敏功能,并且配置全字段脱敏规则(add_mask_rule('', '', '', '')),使用Sysbench工具压测,导入128张表,每张表25000行数据,QPS值大约为40万时,数据库性能损耗在5%以内。

QPS:Query Per Second,数据库每秒执行的SQL数。

版本限制

RDS for MySQL动态脱敏功能要求内核版本为8.0.32.250300及以上版本。

功能限制

  • 当前仅支持对SELECT语句数据脱敏。
  • 脱敏规则对系统库不生效。系统库包括:mysql、information_schema、performance_schema、sys。
  • 单个数据库名、表名、列名、用户名首尾的空格和特殊空白字符(如'\t'、'\r'、'\n')都会被忽略。
  • 单个数据库名、表名、列名长度不超过64 bytes,单个用户名长度不超过32 bytes。
  • 管理员用户列表(rds_dynamic_masking_super_users)长度不超过1024 bytes。
  • 不同数据类型的脱敏处理不同,详见表1
    表1 脱敏处理说明

    数据类型

    脱敏处理说明

    整数型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、BOOLEAN)

    脱敏为正整数。

    小数型(DECIMAL、FLOAT、DOUBLE)

    时间型(YEAR)

    时间型(DATE、TIME、DATETIME、TIMESTAMP)

    DATE脱敏之后的范围:[1000:01:01,9999:12:31.499999]

    TIME脱敏之后的范围:[00:00:00,838:59:59.499999]

    DATETIME、TIMESTAMP取值范围:[1971:01:01 00:00:00, 2037:12:31 23:59:59.49999]

    字符串类型

    脱敏为:******

RDS for MySQL动态脱敏相关参数

表2 参数说明

参数名称

级别

描述

rds_dynamic_masking_enabled

Global

动态脱敏特性开关。默认值为OFF。

rds_dynamic_masking_super_users

Global

支持配置多个管理员用户。默认值为空字符串('')。

多个管理员用户之间使用英文逗号(,)分隔,脱敏规则对管理员用户不生效。示例:'user1,user2'

rds_masking_paramter_max_count

Global

数据库名、表名、列名、用户名最大可配置个数。默认值为100,取值范围[1, 1000]。

使用方法

相关文档