sql - 如何将数据从生产迁移到开发但又打乱敏感数据?

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

立即设置

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

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

我们使用 Entity Framework 代码优先迁移来更新表结构,这很棒,因为它处于版本控制中。

挑战:如何处理数据。

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

这包括:

  • 用户的私有(private)数据
  • 有关客户和用户的电子邮件

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

我正在寻找答案:

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

在我的想象中,我正在寻找这样的东西:

  1. 每周自动迁移数据
  2. 打乱一些字段(即移动一些值、删除/添加一些表格中的一些字母)

但我不知道这在专业环境中通常是如何完成的。

技术栈

我们使用 Azure 数据库、.NET/Visual Studio 和 Entity Framework 作为 ORM。

最佳答案

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

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

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

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

关于sql - 如何将数据从生产迁移到开发但又打乱敏感数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35629698/

相关文章:

mysql - 将单个表中的多个字段映射到另一个表中的单个字段的策略

MySQL if 触发器内的条件

sql - 前 12 个月间隔和 ISO 周的平均值

.net - 中文操作系统(96 dpi)上的表单缩放问题

c# - 在 Entity Framework Core 中保存 HashSet<string>

sql - Oracle DB SQL - 检查每个月是否至少存在一个数据集

.net - 如何用给定枚举中的所有项目填充XAML中的WPF组合框?

c# - 工作台的连接表和链接表之间有区别还是相同?

entity-framework - Entity Framework 设计器不会添加表

c# - 在 Entity Framework 中使用一个存储过程插入到两个表中