Sql server 从另一台服务器还原数据库时,如何保留安全设置

Sql server 从另一台服务器还原数据库时,如何保留安全设置,sql-server,tsql,powershell,Sql Server,Tsql,Powershell,我有两台SQL server,我想在其中一台上进行备份,然后在另一台服务器上进行恢复。问题是数据库已经存在于我要还原到的服务器上,我希望保持安全设置在我要还原到的服务器上的方式 另一个问题是,我想从PowerShell执行所有这些操作,因此不需要GUI操作 或者这可能是解决问题的错误方法。是否有其他方法可以在不进行备份/恢复和保留安全设置的情况下移动数据 在我的环境中,我们使用带有Red Gate Compare Professional的Powershell脚本来恢复数据库,并保留安全性和数据

我有两台SQL server,我想在其中一台上进行备份,然后在另一台服务器上进行恢复。问题是数据库已经存在于我要还原到的服务器上,我希望保持安全设置在我要还原到的服务器上的方式

另一个问题是,我想从PowerShell执行所有这些操作,因此不需要GUI操作


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

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

  • 创建目标数据库的红门快照。使用红色门命令行工具。它生成的文件非常小,只包含用户、权限和对象——基本上除了数据之外的所有内容
  • 使用T-SQL在目标数据库上恢复源数据库
  • 使用命令行Red Gate工具将步骤中创建的快照与几乎恢复的数据库进行比较和同步。恢复任何安全性或对象更改

  • 此解决方案确实需要购买SQL Compare的专业版,并在可执行脚本的开发服务器上安装该工具。所有这些都可以轻松地放入SQL代理作业中。Powershell的使用非常基本,因为我们只是在执行sqlcompare.exe,这里解释了如何通过Powershell通过SMO编写SQL Server权限脚本。然后,您的方案是在恢复备份之前从初始数据库编写权限脚本,然后在恢复备份之后执行生成的脚本。

    您所说的“安全设置”是什么意思?登录、用户、角色、对象权限?您使用的是什么版本和版本的SQL Server?我个人在另一台服务器上进行数据库还原后,会使用存储过程设置安全性。您可以在恢复后使用posh脚本执行存储success@Pondlife对两台服务器上的登录名、用户和角色不同(不同的服务帐户等)。我们在两台服务器上都使用Microsoft SQL Server 2008 R2 Enterprise。