更新时间:2025-08-12 GMT+08:00

注入或提取数据库水印

前提条件

约束条件

类型

限制

水印注入

  • DWS数据支持smallint,integer,bigint,float4,float8,varchar,text,char类型嵌入水印。
  • MRS-HIVE数据支持smallint,int,long,float,double,string类型嵌入水印。
  • 嵌入水印单一列中的内容重复率不高于30%。
  • 数据库的内容字符编码格式为UTF-8。
  • 数据库注入列为非主键列。
  • 数据表中的数据行数建议1500行以上。

水印提取

  • 源文件格式必须为csv文件且大小不能超过20M。
  • 表数据记录预估在1500行以上。
  • csv文件内容格式为UTF8编码,请保证数据的完整性以及正确性。

注入或提取数据库水印

您可以按照如下操作给数据库中的表数据添加或提取数据水印。

  1. 登录DSC服务控制台
  2. 单击左上角的,选择区域或项目。
  3. 在左侧导航树中选择数据资产保护 > 数据库水印,进入“水印注入”界面。
  4. 单击“新建任务”,进入“基础信息配置”界面。

    图1 基础信息配置
    表1 基础信息配置参数说明

    参数

    说明

    任务名称

    请输入任务名称。

    只能由中文、英文字母、数字、下划线或中划线组成,且不能超过255个长度。

    水印标识

    请输入需要注入的水印标识符。

    嵌入方案

    单击下来框选择嵌入水印的方案,有如下方式:

    • 无损-伪列水印:伪造新的属性列,生成与该关系表的其他属性相关的伪列,不容易被攻击者察觉,然后将水印嵌入到伪造的新列中,降低对原数据的损坏。
    • 无损-伪行水印:基于数据各项属性的数据类型、数据格式、取值范围的约束条件生成多个伪造的行,然后将水印嵌入到伪造的新行中,降低对原数据的损坏。
    • 有损-列水印:在列数据直接添加水印,会对数据造成一定的修改或者损坏。
    说明:

    等级越高,水印信息编码位数越长,溯源时误码率越低,需注意高纠错等级需要更大的数据量来保证信息的嵌入完整性,默认为1。

  5. 单击“下一步”,进入“源目标端配置”界面,请按照参数列表2配置相关参数。

    • 无损-伪列水印:无损添加水印,创建新的列。
      图2 伪列水印
      表2 伪列水印源目标端配置参数

      参数

      说明

      数据源类型

      单击下拉框选择“数据源类型”

      • 当嵌入方案选择“有损-列水印”时,支持的数据源类型有:
        • DWS
        • MRS_HIVE
      • 当嵌入方案选择“无损-伪列水印”“无损-伪行水印”时,支持的数据类型有:
        • DWS
        • PostgreSQL
        • MySQL

      数据库实例

      单击下拉框选择对应的“数据库实例”。如果没有可用数据库实例,请参考添加数据库资产并授权添加大数据资产并授权章节进行授权。

      数据库

      单击下拉框选择对应的“数据库”

      模式

      “数据库类型”“DWS”“PostgreSQL”时显示该参数。单击选择对应的“模式”

      源表名

      单击选择对应的“源表名”

      列名称

      只能由字母、数字、下划线或中划线组成,且不能超过255个字符长度。

      列数据类型

      单击选择嵌入伪列的数据类型。

      • 数字类型
      • 字符串
      • 日期类型

      样例

      选择“设置字段规则”后显示嵌入伪列数据样例。

      设置字段规则

      • “列数据类型”选择“数字类型”时,该参数为随机数,可以指定随机数的范围和随机数的精度,如果未指定范围和精度将随机生成伪造数据。
      • “列数据类型”选择“字符串”时,可以单击下拉框选择人名、身份证号、手机号等类型的伪造数据。
      • “列数据类型”选择“日期类型”时,可以指定日期范围,如果没有指定日期范围,将随机生成伪造数据。

      增加伪列

      可单击“增加伪列”添加两列伪列数据。

      目标表名

      请输入目标表名,只能由字母、数字、下划线或中划线组成,且不能超过255个字符长度。

    • 无损-伪行水印:无损添加水印,复制新的行数据注入水印。
      图3 伪行水印
      表3 伪行水印源目标端配置参数

      参数

      说明

      数据源类型

      单击下拉框选择“数据源类型”,支持的数据源类型有:

      • DWS
      • PostgreSQL
      • MySQL

      数据库实例

      单击下拉框选择对应的“数据库实例”。如果没有可用数据库实例,请参考添加数据库资产并授权添加大数据资产并授权章节进行授权。

      数据库

      单击下拉框选择对应的“数据库”

      模式

      “数据库类型”“DWS”“PostgreSQL”时显示该参数。单击选择对应的“模式”

      源表名

      单击选择对应的源数据表名。

      伪行跨行数

      请输入伪行在原始数据中插入的跨行数,输入值为大于1的有效整数。

      目标表名

      请输入嵌入水印后的数据存储表名称,只能由字母、数字、下划线或中划线组成,且不能超过255个字符长度。

    • 有损-列水印:在列数据直接添加水印标识。
      图4 有损列水印
      表4 有损列水印源目标端配置参数

      参数

      说明

      数据源类型

      单击下拉框选择“数据源类型”,支持的数据源类型有:

      • DWS
      • MRS-HIVE

      数据库实例

      单击下拉框选择对应的“数据库实例”。如果没有可用数据库实例,请参考添加数据库资产并授权添加大数据资产并授权章节进行授权。

      数据库

      单击下拉框选择对应的“数据库”

      模式

      “数据库类型”“DWS”时显示该参数。单击选择对应的“模式”

      源表名

      单击选择对应的“源表名”

      水印嵌入列

      单击选择水印嵌入的列数据,可多选。

      说明:
      • 源数据库字符集需使用UTF-8。
      • 嵌入水印单一列中的内容重复率不高于30%。

      目标表名

      请输入嵌入水印后的数据存储表名称,只能由字母、数字、下划线或中划线组成,且不能超过255个字符长度。

  6. 单击“下一步”,进入“调度信息配置”界面。

    图5 调度信息配置
    • “调度参数”“单次”时,可以选择“立即执行”,也可以选择“定时启动”在某一时间启动嵌入水印任务。
    • “调度参数”“每日”“每周”“每月”时,分别选择在某日某一时间、某周某一时间、每月某一时间启动嵌入水印任务。

  7. 单击“完成”,水印嵌入任务创建完成。
  1. 登录DSC服务控制台
  2. 单击左上角的,选择区域或项目。
  3. 在左侧导航树中选择数据资产保护 > 数据库水印,进入“水印注入”界面。
  4. 单击“水印提取”页签,进入“水印提取”界面。
  5. 单击“新建任务”,进入新建任务弹框,请根据表5配置相关参数。

    图6 新建提取任务
    表5 新建水印提取任务

    参数

    说明

    任务名称

    请输入任务名称。

    源文件

    请选择本地含有水印的源文件,源文件必须为csv文件且大小不能超过20M,表数据记录预估在1500行以上,csv文件内容需为UTF8编码,请保证数据的完整性以及正确性。

    提取方式

    单击下拉框选择提取水印的方式,有损列嵌入以及无损列嵌入需要使用按列提取,无损行嵌入则需要使用按行提取。

    分隔符

    文件中的分隔符。例如","。

  6. 单击“确定”,完成水印提取任务创建。

相关操作

  • 运行中的嵌入水印任务不支持编辑或删除。
    • “水印注入”页签单击目标任务“操作”“编辑”,可对嵌入水印任务配置信息进行修改。
    • “水印注入”页签单击目标任务“操作”“删除”,可删除该嵌入水印任务。也可以选择多条任务,单击列表左上角的批量删除,删除多条任务。

      删除操作无法恢复,请谨慎操作。

  • “水印注入”页签单击目标任务操作列更多 > 开启任务开启该任务。
  • “水印注入”页签单击目标任务操作列更多 > 关闭任务关闭该任务。
  • “水印注入”页签单击目标任务操作列更多 > 运行,该任务开始运行。
  • “水印提取”页签单击目标任务“操作”“删除”,可删除该水印提取任务。也可以选择多条任务,单击列表左上角的批量删除,删除多条任务。

    删除操作无法恢复,请谨慎操作。

  • “水印提取”页签单击目标任务“操作”“查看结果”查看提取的暗水印内容。