我需要跨两个不同的数据库服务器(IP 10.0.0.50和10.0.0.51)进行连接.什么是最好的方式?
我发现的解决方案:
1)运行存储过程
exec sp_addlinkedserver @server='10.0.0.51'
2)验证服务器是否已链接(列出链接的服务器)
exec sp_linkedservers
3)使用格式运行查询
[10.0.0.51].DatabaseName.dbo.TableName
您需要使用sp_linkedserver来创建链接服务器.
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ]
有关MSDN的更多信息.
我知道上面的答案很好,但是想分享一些我希望别人会发现有用的细节.值得一提的是用户访问部分,我认为人们需要帮助.
设置链接:
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
如上所述,您可以使用sp_addlinkedserver.但是,您也可以通过Enterprise Manager(2000)或SQL Server Management Studio(2005)执行此操作.在"安全"节点下,有一个"链接服务器"节点,您可以使用该节点添加和配置链接服务器.您可以指定安全设置,模拟等.
请参阅以下SQL Server 2000:
配置链接服务器
为链接服务器建立安全性
为分布式查询配置OLEDB提供程序
请参阅SQL Server 2005的这些:
链接服务器
链接服务器的安全性
为委派配置链接服务器
为分布式查询配置OLEDB提供程序