sp_addlinkedserver语法

时间:2010-06-30 16:23:21

标签: sql-server

我想在xxx.safesecureweb.com上复制远程服务器上的内容。 如何从本地SQL Server连接到它?

语法是这样的:

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

我正在考虑做的是编写一堆插入语句,如:

INSERT INTO Test.Table
SELECT * FROM Production.Table

2 个答案:

答案 0 :(得分:27)

您未在链接服务器定义中指定远程用户和密码。链接服务器具有单独的对象,该对象通过远程登录来连接到本地服务器(“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配置服务器。

答案 1 :(得分:3)

提供商应该是您要用于连接的客户端提供商。 @datasrc是要连接的服务器名称。

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

然后,在查询时,我相信你需要在表格中使用四部分名称:

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

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