从其他服务器还原数据库时如何保留安全设置

时间:2012-03-20 13:52:30

标签: sql-server tsql powershell

我有两个SQL Server,我想在其中一个上执行备份,然后在另一个服务器上恢复它。问题是数据库已存在于我正在恢复的服务器上,并且我希望保持安全设置的方​​式与我正在恢复的服务器上的方式相同。

另一个问题是我想从PowerShell中完成所有这些操作,因此没有GUI操作。

或者这可能是问题的错误解决方案。是否有其他方法可以在不进行备份/恢复和保持安全设置的情况下移动数据?

2 个答案:

答案 0 :(得分:0)

在我的环境中,我们使用Powershell脚本和Red Gate Compare Professional来恢复数据库并保持安全性和数据库对象的差异。这个过程非常简单

  1. 创建目标数据库的红门快照。使用Red Gate命令行工具。它生成的文件非常小,只包含用户,权限和对象 - 基本上除数据外的所有内容。
  2. 使用T-SQL
  3. 在目标数据库上还原源数据库
  4. 使用命令行Red Gate工具将步骤中创建的快照与近乎恢复的数据库进行比较和同步。将恢复任何安全或对象更改。
  5. 此解决方案需要购买SQL版的Professional版本,并在可以从中执行脚本的开发服务器上安装该工具。所有这些都可以轻松地放入SQL Agent作业中。由于我们刚刚执行sqlcompare.exe

    ,因此使用Powershell非常基本

答案 1 :(得分:0)

an article here解释了如何通过PowerShell通过SMO编写SQL Server权限。然后,您的方案是在恢复备份之前从初始数据库获取脚本权限,然后在备份恢复后执行生成的脚本。