【问题标题】:MS SQL backup and restore with some condition某些条件下的 MS SQL 备份和恢复
【发布时间】:2018-10-24 20:46:17
【问题描述】:

我们有两台虚拟机,其中一台是系统的实时版本,另一台是开发环境。问题是,当开发者想从现场机器备份和恢复数据库到开发机器时,有一些敏感数据,如姓名、姓氏、父亲姓名、出生日期、地址等。我不想备份用户的由于 GDPR,某些表上的敏感数据。

那么在这种情况下我该如何备份和恢复数据库呢?假设表名是用户。我只想恢复除用户表数据之外的所有数据库。但是,开发人员帐户也存储在那里,所以我需要在用户表上备份某些 id。我基本上是通过 SQL Server Management Studio 上的 GUI 备份和恢复数据库,但是我需要为它编写一些脚本。

BACKUP DATABASE [DB_NAME] TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DB_NAME_Date.bak' WITH NOFORMAT, NOINIT,  NAME = N'DB_NAME-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

【问题讨论】:

    标签: sql-server database-backups


    【解决方案1】:

    您可以编写数据更改脚本以运行恢复后。作为恢复作业的一部分,创建一些测试数据并编写一个脚本,用您的测试数据替换生产数据。

    有第三方备份工具可以进行表级备份和恢复,例如 Commvault。你也可以看看这些。

    我知道 Commvault 会进行表级还原。还有我知道的 Netbackup 和 Veeam。我认为最新版本的 Netbackup 可能会进行对象级备份/恢复,但不确定。从未使用过 Veeam 备份,但我听说过他们的好消息,而且他们的其他产品也非常好。我使用了 Commvault,但没有使用表级还原选项。否则 Commvault 很棒。

    【讨论】:

      【解决方案2】:

      在本机 MSSQL 中没有这样的选项来备份和恢复选择性表。但是,您可以编写脚本(尽管它可能很复杂)来从 prod->dev 移动数据。如:

      有一个商业产品具有对象级恢复功能,但它不是免费的:https://documentation.red-gate.com/sbu7/object-level-recovery我过去使用过它,它运行良好。

      【讨论】:

      • 另外:a) 使用 FILEGROUPS ,b) 复制。但无论如何这不是一件容易的事
      • 对 FILEGROUPS 很感兴趣,我考虑将其包括在内,但将哪些表放入哪些组中将是一个很大的挑战 :) 我没有考虑复制,我会添加它,谢谢 :)
      • @sniperd 感谢您的回复。我只是想知道有没有那么快。否则使用 Tasks->Export/Import、使用数据生成表脚本或 SELECT INTO 非常棘手且浪费时间。我更喜欢手动备份和恢复数据库,并使用 Delete From Table 名称从表中删除数据,然后再次插入开发人员信息:)
      【解决方案3】:

      我们为电信做会计系统,我们需要一个在很多方面类似于生产数据库的数据库。

      我可以解释一下我们是如何解决这个问题的。

      非技术方面:

      我们与客户达成了MUST:完全协议。

      他们的安全人员和他们的 DBA 审查了我们的流程。

      我们的流程:

      • 第 1 步:部分备份 - 我们不需要多年的通话记录

      • 第 2 步:在客户服务器上恢复

      • 第 3 步:匿名化脚本

      • 第 4 步:查看匿名数据

      • 第 5 步:备份创建的数据库

      匿名化进程:

      1. 更改姓名、电话号码、社交 ID 和其他敏感信息
      2. 改组旧 ID
      3. abonent 数据以及相关的通话和计费历史记录的随机重复
      4. 更改通话记录:在账单周期内改组通话,添加随机不存在的通话,删除随机通话
      5. 更改帐单历史记录

      最后的想法:

      我没有听说过此类任务的现成解决方案。

      如果您能找到与我们类似的匿名工具 - 请分享您的知识。

      关于这个话题我能说的就这些了。

      自行决定它如何满足您的要求。

      【讨论】:

      • 感谢您的回复。过几天我会更新并通知你。
      猜你喜欢
      • 2011-12-10
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多