2012-03-20 38 views
0

我有兩個SQL Server,我想對其中一臺進行備份,然後在其他服務器上進行恢復。問題在於數據庫已經存在於我正在恢復的服務器上,並且我希望保持安全設置與恢復到的服務器上的方式一致。當我從另一臺服務器恢復數據庫時,如何保持安全設置

另一個問題是我想從PowerShell中完成所有這些工作,所以沒有GUI操作。

或者這可能是問題的錯誤解決方案。是否有另一種方法可以在不進行備份/恢復並保持安全設置的情況下移動數據?

+0

你是什麼意思的「安全設置」?登錄,用戶,角色,對象權限?你使用的是什麼版本的SQL Server? – Pondlife 2012-03-20 14:42:01

+0

個人在不同服務器上恢復數據庫後,我使用存儲的proc do set安全性。你可以用posh腳本執行存儲後恢復成功 – 2012-03-20 19:27:13

+0

@Pondlife是的。登錄,用戶和角色在兩臺服務器(不同的服務帳戶等)上是不同的。我們在兩臺服務器上都使用Microsoft SQL Server 2008 R2 Enterprise。 – 2012-03-21 08:01:44

回答

0

在我的環境中,我們使用Powershell腳本和Red Gate Compare Professional來恢復數據庫並保持安全性和數據庫對象的差異。該過程相當簡單

  1. 創建目標數據庫的紅色快照快照。使用Red Gate命令行工具。它生成的文件非常小,只包含用戶,權限和對象 - 基本上除數據外都是。
  2. 使用T-SQL在目標數據庫中恢復源數據庫
  3. 使用命令行紅色門控工具比較步驟中創建的快照並將其同步到幾乎恢復的數據庫。任何安全或對象更改都會恢復。

此解決方案確實需要購買專業版的SQL比較並在開發服務器上安裝該工具,從中可以執行該腳本。所有這些都可以輕鬆地放入SQL Agent作業中。 Powershell的使用真的很基礎,因爲我們只是執行sqlcompare.exe

0

an article here解釋如何通過PowerShell通過SMO腳本SQL Server權限。然後,您的方案將在恢復備份之前從您的初始數據庫創建腳本權限,然後在備份恢復後執行生成的腳本。

相關問題