我正在寻找一种自动化解决方案,将敏感数据从我的 prod 环境清理到我的 DEV 和 DEVINT 环境,这样我就不必编写大量代码来完成这项工作。有谁知道 SSIS 中的数据质量服务和数据清理步骤是否可以为我解决问题?或者,是否有其他人有任何建议来清理我的数据而无需编写 TSQL 来执行它?
我正在寻找一种自动化解决方案,将敏感数据从我的 prod 环境清理到我的 DEV 和 DEVINT 环境,这样我就不必编写大量代码来完成这项工作。有谁知道 SSIS 中的数据质量服务和数据清理步骤是否可以为我解决问题?或者,是否有其他人有任何建议来清理我的数据而无需编写 TSQL 来执行它?
清理敏感数据是一个庞大的话题。您基本上需要根据公司的数据保护政策进行定义——什么是 PII(个人身份信息)或您不希望其他人看到的敏感信息?
SQL Server 2012* 没有任何本机工具来屏蔽或清理敏感数据。
在我的公司,我们开发了内部工具,可以屏蔽客户敏感数据,如电子邮件、电话、姓名等。
如果您必须重复执行此操作,我建议您从 PROD 获取模式,然后使用RedGate 的数据生成器等 3rd 方工具来生成测试数据。
有几种方法可用于屏蔽敏感数据(一旦您确定 - 什么被认为是敏感数据),例如:
Brent 写了一篇很好的博客文章,关于如何屏蔽数据以进行安全测试?
* 在 SQL Server 2016 中,微软引入了动态数据屏蔽
您可能需要更详细地了解“数据清理”的含义。我假设您的意思是获取生产数据并随机化敏感信息(任何识别人员或组织的信息,例如姓名、代码、地址等)。
您不太可能通过自动化解决方案找到很多解决方案,至少除了最简单的数据库之外,它不能处理任何事情,因为如果没有特定的应用程序知识,很难确定需要更改的内容,必须更改的内容保持原样,否则应用程序将无法理解它,并且必须更改哪些内容但要与其他数据保持同步(如果您的所有数据都以结构良好的形式存在,这不是一个问题,因为重复将是最小/零)。
即使写一些通常有用的东西作为覆盖简单字段的通用工具是可行的,自由文本字段也会带来一个重大问题,因为它们可能包含敏感信息并且需要相当多的人工智能来解析(并且只是消隐或随机化)它们可能不适合)。
我可以设想一个工具来帮助您谈论创建数据清理脚本的一些腿部工作,但我不知道存在任何工具。
如果您的客户要求您访问以检查您对他们的数据的处理,生成随机/任意测试数据,可能仍然使用对生产数据库的引用,但仅用于简单的事情,通常更容易,尤其是更容易说服审计员喜欢确保您的测试数据在每个表中具有相同的数据平衡。这样您就知道那里没有敏感信息,因为不可能:您从未开始使用任何信息,并且您知道自己没有放入任何信息。有几种工具可以帮助您从这个方向进行处理,我相信 RedGate 在他们的工具箱中提供了一个。