如何在SQL Server中创建和查询链接数据库服务器?

时间:2008-10-09 22:21:29

标签: sql sql-server database

我需要跨两个不同的数据库服务器(IP 10.0.0.50和10.0.0.51)进行连接。什么是最好的方式?

4 个答案:

答案 0 :(得分:19)

我发现的解决方案:

1)运行stored proc

exec sp_addlinkedserver    @server='10.0.0.51'

2)验证服务器是否已链接(列出链接服务器)

exec sp_linkedservers

3)使用格式

运行查询
 [10.0.0.51].DatabaseName.dbo.TableName

答案 1 :(得分:14)

您需要使用sp_linkedserver来创建链接服务器。

sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] 
 [ , [ @provider= ] 'provider_name' ]
 [ , [ @datasrc= ] 'data_source' ] 
 [ , [ @location= ] 'location' ] 
 [ , [ @provstr= ] 'provider_string' ] 
 [ , [ @catalog= ] 'catalog' ] 

有关MSDN的更多信息。

答案 2 :(得分:10)

我知道上面的答案很好,但是想分享一些我希望别人会发现有用的细节。值得一提的是用户访问部分,我认为人们需要帮助。

设置链接:

exec sp_addlinkedserver @server='10.10.0.10\MyDS';

为远程用户设置访问权限,例如:

exec sp_addlinkedsrvlogin '10.10.0.10\MyDS', 'false', null, 'adm', 'pwd';

查看链接的服务器和用户登录信息:

exec sp_linkedservers;

select * from sys.servers;

select * from sys.linked_logins;

运行远程查询:

select * from [10.10.0.10\MyDS].MyDB.dbo.TestTable;

删除链接服务器和创建的登录用户(adm / pwd)

exec sp_dropserver '10.10.0.10\MyDS', 'droplogins'; -- drops server and logins

<强>资源:

sp_addlinkedserver

sp_dropserver

sp_addlinkedsrvlogin

sp_droplinkedsrvlogin

答案 3 :(得分:5)

如上所述,您可以使用sp_addlinkedserver。但是,您也可以通过Enterprise Manager(2000)或SQL Server Management Studio(2005)执行此操作。在“安全”节点下,有一个“链接服务器”节点,您可以使用该节点添加和配置链接服务器。您可以指定安全设置,模拟等。

请参阅SQL Server 2000的这些:

Configuring Linked Servers

Establishing Security For Linked Servers

Configuring OLEDB Providers for Distributed Queries

请参阅SQL Server 2005的这些内容:

Linking Servers

Security for Linked Servers

Configuring Linked Servers for Delegation

Configuring OLEDB Providers for Distributed Queries