向数据中嵌入水印

数据安全针对数据库存储数据,提供了注入数据水印的能力。

通过在数据字段中添加自定义水印编码信息,并且使用不同的嵌入算法保证了修改的隐蔽性、数据的可用性,实现了水印的嵌入过程。

·          执行水印嵌入的源数据表必须已注册为离线表。

·          当前仅支持MySQLPostgreSQLOracleHiveGreenplum、达梦和Vertica类型数据源中的表进行水印嵌入。

 

向数据中嵌入水印包含如下三个步骤:

  1. 新建水印嵌入任务

  1. 初始化水印嵌入任务

  1. 启动水印嵌入任务

新建水印嵌入任务

首先在系统中创建水印嵌入任务,需要指定源数据、嵌入水印后数据的存放位置,并配置水印信息、嵌入方式等信息。

除直接新建外,还可以基于已有任务复制生成新任务。此外,新建数据静态脱敏时,也提供了数据水印嵌入的配置。

 

  1. 在顶部导航栏中选择[数据运营/数据安全],进入数据安全模块面。

  1. 单击左侧导航树中的[数据水印/水印嵌入]菜单项,进入水印嵌入页面。

  1. 在页面中,单击列表左上方的<新建>按钮,进入创建水印溯源任务页面。

  1. 配置任务的名称和描述信息。

  1. 单击<下一步>按钮,进入源/目标配置页面。

  1. 配置源端参数,选择数据源类型、数据源及数据源中的数据表,参数说明见下表。

  1. 配置目标端参数,参数的说明请参见下表。

表-1 /目标配置参数

参数分类

参数名称

说明

源端配置

数据源类型

选择数据源类型

数据源

选择待水印嵌入处理的数据表所属的数据源

源表名

指定需要水印嵌入处理的数据表

目标端配置

导出类型

选择嵌入后数据导出的类型:

  • TABLE表示导出到数据表中,需要指定目标表的数据源、目标表、写入模式及抽取类型

  • HDFS表示导出到HDFS的文件中,需要指定HDFS目录、数据内容的分隔符及数据写入的模式

数据源

选择存储嵌入后数据的数据源。导出类型为TABLE时,需配置该参数

目标表是否存在

导出类型为TABLE时,需配置该参数

  • 选择“是”表示向已存在的表中存储数据,此时需确保目标表中对应源表嵌入字段的字段类型

  • 选择“否”表示根据配置的目标表名新建一张表存储数据,该新建的表中

目标表名

导出类型为TABLE时,需配置该参数

配置存储嵌入水印后数据的具体表名。如需放入已存在的表中,请确认此处指定的表名与实际的表名一致。

HDFS目录

选择嵌入水印后数据文件的保存路径。导出类型为HDFS时,需配置该参数

数据分隔符

指定嵌入水印数据写入文件时的字段分隔符。导出类型为HDFS时,需配置该参数

抽取类型

选择抽取源数据表中数据的类型,目标端导出类型为TABLE时,需配置该参数,支持全量和增量:

  • 全量:获取源表中全量数据,进行嵌入处理后写入目标表中

  • 增量:获取源表在上次水印嵌入操作后新增的数据,进行嵌入处理后写入目标表。如选择增量抽取,为实现增量识别,需指定增量字段,在启动任务时,系统会自动获取指定增量字段在目标表中的最大值,并以该值对应源表中的相同值作为起始位置,从源表中获取增量数据

增量字段

选取作为增量抽取依据的字段,仅支持选取数值、日期、时间戳类型的字段

抽取类型为增量时,需配置该参数

写入模式

选择水印嵌入后数据的写入方式:

  • 追加:导出类型为Table(导出到表)时,表示在表中原有数据后追加;导出类型为HDFS(导出到文件)时,表示在选择的目录中追加

  • 覆盖:导出类型为Table(导出到表)时,表示覆盖表中原有数据;导出类型为HDFS(导出到文件)时,表示清空目录后再写入

 

  1. 单击<下一步>按钮,进入水印策略配置页面。

  1. 配置水印信息,配置信息说明参考下表。

表-2 水印信息参数说明

参数名称

说明

水印嵌入字段

选择需要嵌入的字段,目前支持数值类型和字符类型的字段进行水印的嵌入

字段类型

显示选择嵌入字段的字段类型

水印策略

选择水印策略,目前支持如下两种水印策略

  • 依赖主键列

  • 不依赖主键列

主键列

当选择依赖主键的水印策略时,需要选择主键列,默认填充当前源表的主键列,针对不存在主键的表,可以选择字符或者数值类型的列作为临时主键使用

水印算法

水印算法选择

  • 字符类型字段:零宽度空格算法

  • 数值类型字段:最低有效位修改算法

水印信息

需要嵌入的水印信息

 

  1. 单击<完成>按钮,操作完成。

初始化水印嵌入任务

水印嵌入任务创建完成后,需要通过初始化操作生成对应的业务流程,以方便将任务流程化,方便统一管理及调度。

  1. 在水印嵌入页面的任务列表中,单击水印嵌入任务对应操作列中的<更多>按钮,并在下拉菜单中选择[初始化]菜单项,系统即可自动生成对应该水印嵌入任务的业务流程。

生成的业务流程的名称格式为:watermark_embed_task_水印嵌入任务名称_时间戳。通过查看业务流程功能可以跳转至[数据开发/调度中心]中查看并管理该业务流程。

对于已成功初始化的水印嵌入任务,再次执行初始化操作可以重新生成业务流程,即根据水印嵌入任务中的配置恢复已有业务流程中的配置至初始状态,效果相当于删除原业务流程,然后再生成业务流程。

启动水印嵌入任务

水印嵌入任务初始化成功后,才会在<更多>按钮的菜单中显示出[启动]菜单项。

 

对于已成功初始化的水印嵌入任务,可以在水印嵌入页面执行启动操作,启动对应的业务流程。

在水印嵌入页面的任务列表中,单击水印嵌入任务对应操作列中的<更多>按钮,并在下拉菜单中选择[启动]菜单项,系统即可启动该水印嵌入任务对应的业务流程。