0

我試圖將Windows身份驗證的生產數據庫(SQL Server 2000)鏈接到測試數據庫(SQL Server 2008)在混合模式身份驗證。將SQL Server 2008(混合模式)鏈接到SQL Server 2000(Windows身份驗證)

我已經嘗試下面的代碼從this link

DECLARE @LinkName  SYSNAME SET @LinkName = 'PRODUCTIONSERVER' 
DECLARE @SrvName  SYSNAME SET @SrvName  = 'PRODUCTIONSERVER' 
DECLARE @LocalLogin SYSNAME SET @LocalLogin = 'sa' --login on test db 
DECLARE @RmtLogin  SYSNAME SET @RmtLogin = 'DOMAIN\UserName' --win auth login on prod db 
DECLARE @RmtPwd  SYSNAME SET @RmtPwd  = 'password' --win auth password for the login on prod db 

IF NOT EXISTS (SELECT * FROM Master..Sysservers WHERE IsRemote = 1 AND SrvName = @LinkName) 
BEGIN 
    EXECUTE sp_addlinkedserver @server = @LinkName, 
          @srvproduct = '', 
          @provider = 'SQLOLEDB', 
          @datasrc = @SrvName 

    EXECUTE sp_addlinkedsrvlogin @rmtsrvname = @LinkName, 
          @useself = 'false', 
          @locallogin = @LocalLogin, 
          @rmtuser = @RmtLogin, 
          @rmtpassword = @RmtPwd 
END 

...成功添加一個鏈接的服務器,但是當我嘗試類似的查詢:

SELECT COUNT(*) FROM PRODUCTIONSERVER.ProdDatabase.dbo.ProdTable 

我得到一個錯誤:

Msg 18456, Level 14, State 1, Line 0 
Login failed for user 'DOMAIN\UserName'. 

我也嘗試使用提到的windo登錄到prod數據庫ws認證憑證(我的個人登錄),我可以通過。

鏈接的原因是因爲我想測試活動數據(從SQL 2000)到測試數據庫(SQL 2008)的合併。

關於如何連接服務器的任何想法?

非常感謝。 :)

回答

0

管理有一種變通方法通過SSIS包(感謝同事的幫助):

  • 從生產的進口數據,以測試服務器到這是在SQL2008數據庫
  • 創建一個臨時表
  • 執行MERGE腳本(在SQL任務中),該腳本執行從臨時表合併到要更新的實際表中
相關問題