2010-06-30 40 views
12

我想在xxx.safesecureweb.com上的遠程服務器上創建一個副本。 如何從我的本地SQL Server連接到它?sp_addlinkedserver語法

的語法是這樣的:

sp_addlinkedserver 
@server='PRODUCTION', 
@provider='xxx.safesecureweb.com', 
@Username='myUsername', 
@Password='myPassword' 

我在想什麼做的是寫一堆INSERT語句一樣的:

INSERT INTO Test.Table 
SELECT * FROM Production.Table 

回答

26

您不指定鏈接的遠程用戶和密碼服務器定義。鏈接的服務器有一個單獨的對象,用於通過遠程登錄來映射連接到本地服務器的用戶('locallogin')的登錄名。見Security for Linked Servers。例如,下面的所有本地登錄映射的鏈接服務器到指定MyUserName輸入SQL登錄上:

exec sp_addlinkedserver 'xxx.safesecureweb.com'; 
exec sp_addlinkedsrvlogin 'xxx.safesecureweb.com' 
    , 'FALSE', NULL, 'myUserName', 'myPassword'; 

您只能使用用戶名/密碼遠程SQL登錄映射。遠程Windows登錄(可信身份驗證)必須使用集成身份驗證並將服務器配置爲constrained delegation

3

提供商應該是你要使用的客戶端提供商連接。 @datasrc是連接到的服務器名稱。

sp_addlinkedserver 
@server='PRODUCTION', 
@provider='SQLNCLI', -- sql native client. 
@Username='myUsername', 
@Password='myPassword', 
@dataSrc = 'xxx.safesecureweb.com' 

然後,查詢的時候,我相信你需要使用一個四個部分名稱FOT表:

INSERT INTO Test.Table 
SELECT * FROM Production.mydatabase.dbo.Table 

http://msdn.microsoft.com/en-us/library/ms190479.aspx

+0

謝謝保羅。 我添加了兩個參數@Username和@Password,因爲我知道我需要將它們提供給某個地方。但它們不在sp_addlinkedserver參數列表中。 – 2010-06-30 17:50:53

+0

啊是的 - 呃!您需要使用sp_addlinkedsrvlogin添加登錄名:http://msdn.microsoft.com/en-us/library/ms189811.aspx – 2010-07-01 17:53:29