截断表后备份中的SQL Server敏感数据

我有一个Microsoft SQL 2008 R2数据库,包含大约50GB的客户数据和大约500MB的非客户特定的数据,如库存,零件,术语等。我生成一个干净的数据库副本,没有客户数据用于testing粗略的程序(完全脚本):

  1. 将生产数据库备份到文件
  2. 将文件恢复到testing数据库(此时SIMPLE恢复模式)
  3. 精心策划TRUNCATE TABLE / DELETE语句,以从数据库中删除所有客户数据
  4. 插入一些testing客户回来,所以它是最低限度的可用
  5. 收缩数据库+收缩testing数据库的日志
  6. 备份testing数据库以“清理”备份文件

现在,我们将允许外部开发人员获得上一步生成的干净备份文件的副本,而不仅仅是SQL Server(查询)访问testing数据库。

我的问题:从步骤6开始,如果备份文件本身是用hex编辑器打开的,我可以确定所有包含客户敏感数据库的页面/扩展盘区都被清零/删除吗? 如何覆盖索引,是否还会有“脏”的页面? 我确信有这个章节和诗句的答案,但我似乎无法在网上find它。

后续问题:我正在备份和恢复50 + GB,最终有一个500MB的数据库。 500MB仍然比我想要通过INSERT语句重放回空数据库更多。 有没有更好的方法来克隆300个表格的结构,还有50个表格上的数据结构? 我们每个月至less进行2次重要的模式更改(新build表,新build列,删除列等)。 目前的脚本可能需要10分钟才能运行,所以我现在很好,但如果可能的话,我想提高。