您所在的位置: 首页 > 读书频道 > 数据库 > SQL Server >

第7课 配置链接服务器

http://book.51cto.com  2007-12-14 11:45  (美)Solid Quality Learning著 施平安译  清华大学出版社  我要评论(0)

第7课  配置链接服务器

SQL Server使我们能够用本地T-SQL代码访问外部数据源。通过使用OPENROWSET函数,可以即席访问外部数据源。如果需要定期访问本地实例外部的数据——(如一个远程SQL Server、服务器上的另一个实例,或Microsoft Access、Oracle或其他数据库),则要创建一个链接服务器来访问外部数据源。链接服务器还允许我们配置分布式环境(如复制)。

要创建一个链接服务器,需要一个OLE DB访问接口,用来连接到外部数据源。选择一个好的OLE DB访问接口,是非SQL Server链接服务器(如AS/400或Oracle)具有良好性能的关键。

学习目标:
 能够指定外部数据源
 能够指定数据源的特征
 能够指定数据源的安全模式
预计课程时间:10分钟

如何创建链接服务器
对于每个需要访问的外部数据源,都要定义一个链接服务器,然后配置运行分布式查询的安全上下文。创建链接服务器以后,就可以使用T-SQL OPENQUERY函数执行分布式查询。

提示  执行分布式查询
在对一个链接服务器执行分布式查询时,应对每个将要查询的数据源使用一个由4部分组成的完全限定的表名:以linked_server_name.catalog.schema.object_name的形式。

下面给出了创建一个链接服务器的基本步骤。

1.在SSMS的对象资源管理器下,展开“服务器对象”,如图2.4所示。

2.右击“链接服务器”节点,并选择“新建链接服务器”。

3.图2.5显示了“新建链接服务器”对话框的“常规”选项页,在这里可以选择想要创建的链接服务器类型。如果选择SQL Server,系统将使用Microsoft SQL Native Client OLE DB Provider连接到链接服务器。对于其他数据源,可选择合适的OLE DB访问接口。例如,你可以选择Microsoft Jet 4.0 OLE DB Provider连接到Access数据库。

 

图2.4  通过SSMS管理链接服务器 

 

图2.5  创建一个新的链接服务器

4.选择“安全性”页,配置用于链接服务器的安全上下文,如图2.6所示。

 

图2.6  配置链接服务器的安全模式

配置安全模式
使用链接服务器访问外部数据源时,应特别注意外部连接的安全上下文。你可以对链接服务器进行配置,使它使用以下三种安全模式之一。
 
自映射  创建一个链接服务器时,为所有的本地登录名添加该安全模式,因此SQL Server试图使用当前用户的登录凭据连接到外部数据源。在远程服务器上必须存在相同的登录名和密码。这是默认行为。
 
委托  这种模式模拟Windows本地凭据,连接将一个未授权的Windows用户的凭据转发给链接服务器。Windows用户账户和密码必须存在于链接服务器上。
 
远程凭据  该模式将本地登录名映射到外部数据源上的远程登录名。
操作系统登录名的委托是最安全的机制,但只有在外部数据源支持Windows身份验证时才能使用它。在其他情况下,应将本地登录名映射到远程凭据,为外部数据源连接提供一个安全的上下文。

练习:创建一个Microsoft Access链接服务器
在本练习中,创建一个链接服务器,把它链接到一个Microsoft Access数据库(C:\Practice Files\Northwind.mdb),然后查询该Access数据库上的Customer表。本练习使用sp_addlinkedserver存储过程来完成该任务。该存储过程的基本语法如下:

sp_addlinkedserver <server_name>,<product_name>,<oledb provider name>, <data source>

1.浏览配套CD,将\Practice Files\Northwind.mdb数据库复制到C:\Practice Files\ Northwind.mdb

2.打开SQL Server Management Studio。在“登录”对话框中,单击“确定”按钮,然后单击“新建查询”。通过执行sp_addlinkedserver存储过程,创建一个称为North的链接服务器,并把它链接到Access数据库(C:\Practice Files\ Northwind.mdb),如下所示:

EXECUTE sp_addlinkedserver 'North', 'OLE DB Provider for Jet',
'Microsoft.Jet.OLEDB.4.0','C:\Practice Files\Northwind.mdb'

3.通过对Customers表发出如下查询,检测对远程数据库的访问:

SELECT * FROM North...Customers

本课总结
 
链接服务器是使我们能够链接到远程数据源(包括非SQL Server数据源)并对其执行命令的服务器对象。
 
要定义一个链接服务器,需要指定一个外部数据源、一个用来连接到该数据源的OLE DB访问接口以及该连接的安全上下文。
 
创建一个链接服务器以后,就可以用一个由4部分组成的完全限定的表名访问它的对象。

课后测试
下列问题旨在巩固本课介绍的关键内容。如果喜欢用电子版的,可以参见配套CD。

提示  参考答案
这些题目的参考答案以及对每个选项的具体解释,参见本书后面的“参考答案”部分。

1.在什么情况下需要使用链接服务器指定一个外部数据源?
A.需要访问一个不同的数据库时
B.需要访问一个不同的实例时
C.需要访问一个不同的数据库架构时
D.需要访问一个不同用户所有者的对象时

2.创建一个链接服务器时,需要指定什么?(选择所有正确答案。)
A.OLE DB数据源
B.ODBC数据源
C.ODBC访问接口
D.OLE DB访问接口

3.下列关于链接服务器安全性的说法,哪些是正确的?(选择所有正确答案。)
A.安全模式是在实例级定义的
B.默认配置是自映射
C.默认配置是委托
D.安全模式是每链接服务器定义的

【责任编辑:杜书 TEL:(010)68476606】

回书目   上一节   下一节
DNS服务器安装优化全攻略
华硕IDC绿色节能服务器推荐
Sun以10亿美元并购开源数据库厂商MySQL
Windows Home Server 家用服务器专题
服务器维护与应用基础
 
 验证码: (点击刷新验证码)   匿名发表
  • Linux C编程实战

  • 作者:童永清
  • 本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,集趣味性、实战性于一体的160多段代码实例,帮助读者快速掌握在Linu..
Copyright©2005-2008 51CTO.COM 版权所有