MS SQL备份和还原具有某些条件

时间:2018-06-15 13:24:14

标签: sql-server database-backups

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

那么在这种情况下如何备份和恢复数据库呢?假设表名是Users。我只想恢复除Users表数据之外的所有数据库。但是,开发人员帐户也存储在那里,因此我需要在Users表上备份某些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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

有第三方备份工具可以执行表级备份和还原,例如Commvault。您也可以查看这些内容。

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

答案 2 :(得分:0)

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

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

非技术方面

我们与{c}达成了MUST:与我们的客户达成的完全协议。

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

我们的流程

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

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

  • 第3步:匿名脚本

  • 第4步:审查匿名数据

  • 第5步:创建db的备份

匿名处理

  1. 更改姓名,电话号码,社交ID,其他敏感信息
  2. 改组基础ID
  3. 随机复制基因数据以及相关的通话和结算记录
  4. 更改通话记录:在结算周期内改组通话,添加随机不存在的通话,删除随机通话
  5. 更改结算记录
  6. 最后的想法

    我没有听说过为此类任务准备好的解决方案。

    如果你找到一个可以像我们那样进行匿名化的工具 - 请分享你的知识。

    这就是我在这个话题上所能说的一切。

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