如何将数据从生产迁移到开发但是加密敏感数据?

时间:2016-02-25 14:11:55

标签: sql .net entity-framework azure azure-sql-database

立即设置

我们目前在设置中有两个SQL数据库:

  • 生产数据库
  • 开发数据库

我们使用Entity Framework Code First迁移更新表结构,这很好,因为它在版本控制中。

挑战:如何处理数据。

我们从未将生产数据从生产迁移到开发,只是因为我们的开发数据库中有许多我们不想要的敏感数据(或者甚至因为安全性较低而被允许)。

这包括:

  • 用户的私人数据
  • 客户和用户的电子邮件

然而,PROD和TEST网站的内容和外观开始有很大差异,这是一个问题,因为我们的环境差异很大。

我正在寻找答案:

我的问题:您如何轻松地将数据从生产迁移到开发,但“隐藏”敏感数据?

在我的想象中,我正在寻找一些东西:

  1. 每周自动迁移数据
  2. 争夺一些字段(即移动一些值,删除/添加某些表格中的一些字母)
  3. 但我不知道这通常是如何在专业环境中完成的。

    技术堆栈

    我们使用Azure数据库,.NET / Visual Studio和实体框架作为ORM。

1 个答案:

答案 0 :(得分:1)

我曾与一家财富50强公司的财务部门签约一段时间,并面临这个问题。我们编写了一个自定义应用程序,它将连接到生产数据库,提取我们需要加载到开发数据库中的数据,并有选择地加扰某些字段。由于用户在生产数据中生成的数据“场景”的性质,我们使用生产数据作为源,我们希望在开发环境中尽可能地代表这些相互关系。

例如,对文本文件中的大型字符串表随机模糊某些元素的有意义的文本名称,并将数字数据值与从对该字段有意义的有限范围内随机选择的数字相乘。我们并没有混淆一切,只是那些被认为是敏感的数据元素。

由于这些记录要求对其他表中的相关记录具有一定程度的数据完整性,因此我们发现只有自定义应用才能满足我们的需求。

在您的情况下(用户名和电子邮件地址),设置一些虚拟数据相对简单,应用程序可以从中生成“虚假”名称和电子邮件。