配置链接服务器,以使 SQL Server 数据库引擎能够对外部的 OLE DB 数据源执行指令,这些数据源不属于当前 SQL Server 实例。 通常,链接服务器配置为使数据库引擎能够执行 Transact-SQL 语句,该语句包括 SQL Server 的另一个实例或其他数据库产品(如 Oracle)中的表。 可以将许多类型 OLE DB 数据源配置为链接服务器,包括 Microsoft Access 和 Excel。 链接服务器具有以下优势:
能够从 SQL Server 外部访问数据。
能够在整个企业中针对异类数据源发布分布式查询、更新、命令和事务。
能够类似地处理各种数据源。
可以使用 SQL Server Management Studio 或使用 sp_addlinkedserver(Transact-SQL) 语句来配置链接服务器。 OLE DB 提供程序在所需的参数类型和数量方面差异很大。 例如,某些提供程序要求使用 sp_addlinkedsrvlogin (Transact-SQL) 为连接提供安全上下文。 某些 OLE DB 访问接口允许 SQL Server 更新 OLE DB 源上的数据。 其他人仅提供只读数据访问。 有关每个 OLE DB 提供者的信息,请参阅该 OLE DB 提供者的文档。
关联服务器组件
链接服务器定义指定以下对象:
OLE DB 提供程序
OLE DB 数据源
OLE DB 访问接口是一个 DLL,用于管理和与特定数据源交互。 OLE DB 数据源标识可通过 OLE DB 访问的特定数据库。 尽管通过链接服务器定义查询的数据源通常是数据库,但 OLE DB 提供程序也可以用于各种文件和文件格式。 其中包括文本文件、电子表格数据和全文内容搜索的结果。
Microsoft SQL Server Native Client OLE DB 提供程序(PROGID:SQLNCLI11)是 SQL Server 的官方 OLE DB 提供程序。
注释
SQL Server 分布式查询旨在与实现所需 OLE DB 接口的任何 OLE DB 提供程序配合使用。 但是,SQL Server 仅针对 SQL Server Native Client OLE DB 提供程序和其他某些提供程序进行测试。
链接服务器详细信息
下图显示了链接服务器配置的基础知识。
通常,链接服务器用于处理分布式查询。 当客户端应用程序通过链接服务器执行分布式查询时,SQL Server 会分析该命令并将请求发送到 OLE DB。 行集请求可能采用针对提供程序执行查询或从提供程序打开基表的形式。
要使数据源通过链接服务器返回数据,该数据源的 OLE DB 访问接口(DLL)必须与 SQL Server 实例位于同一服务器上。
使用第三方 OLE DB 提供程序时,运行 SQL Server 服务的帐户必须具有目录的读取和执行权限,以及安装提供程序的所有子目录。
管理提供程序
有一组选项控制 SQL Server 加载和使用注册表中指定的 OLE DB 提供程序的方式。
管理链接服务器定义
设置链接服务器时,将连接信息和数据源信息注册到 SQL Server。 注册后,可以使用单个逻辑名称引用该数据源。
可以使用存储过程和目录视图来管理链接服务器定义:
通过运行 sp_addlinkedserver创建链接服务器定义。
通过针对 sys.servers 系统目录视图运行查询,查看有关 SQL Server 特定实例中定义的链接服务器的信息。
通过运行 sp_dropserver删除链接服务器定义。 还可以使用此存储过程删除远程服务器。
还可以使用 SQL Server Management Studio 定义链接服务器。 在对象资源管理器中,右键单击 “服务器对象”,选择“ 新建”,然后选择 “链接服务器”。 可以通过右键单击链接服务器名称并选择“ 删除”来删除链接服务器定义。
对链接服务器执行分布式查询时,请为每个要查询的数据源包含一个完全限定的四部分表名称。 此四部分名称应采用 linked_server_name.catalog.schema
。object_name。
注释
可以将链接服务器定义为将链接服务器指向在其中定义的服务器(环回)。 测试在单个服务器网络上使用分布式查询的应用程序时,环回服务器最有用。 环回链接服务器旨在用于测试,不支持许多操作,例如分布式事务。
相关任务
sp_addlinkedserver(Transact-SQL)
sp_addlinkedsrvlogin(Transact-SQL)