查询SQL Server链接服务器最直接的方法是执行系统存储过程sp_linkedservers或查询系统视图sys.servers,两者都能在秒级返回当前实例中已配置的所有链接服务器名称、数据源和连接类别。
系统视图查询:最直接的路径
sys.servers 视图详解
sys.servers是SQL Server系统目录视图,记录实例中每个已注册服务器的基本信息,执行以下命令即可查看全部链接服务器:
SELECT
name AS 链接服务器名称,
product AS 产品类型,
provider AS 提供程序,
data_source AS 数据源地址,
catalog AS 默认目录,
is_linked AS 是否为链接服务器,
is_data_access_enabled AS 是否启用数据访问,
is_rpc_out_enabled AS 是否启用RPC输出
FROM sys.servers;
返回结果中,is_linked字段值为1的记录即代表链接服务器,本地实例本身也会出现在该视图中,其is_linked值为0,筛选时需注意区分。
扩展查询:权限与登录映射
仅查看服务器列表往往不够,排查问题时还需要了解链接服务器的登录映射和访问权限,联合查询以下两个视图可获取完整信息:
SELECT
s.name AS 链接服务器,
l.remote_name AS 远程登录名,
l.local_principal_id AS 本地主体ID,
s.modify_date AS 最后修改时间
FROM sys.servers s
LEFT JOIN sys.linked_logins l ON s.server_id = l.server_id
WHERE s.is_linked = 1;
sys.linked_logins视图存储了本地登录与远程登录之间的映射关系,若local_principal_id为NULL,表示使用映射到所有本地登录的默认配置,据微软SQL Server文档描述,该视图在SQL Server 2008及以上版本中均可使用。
存储过程与图形界面:不同场景的选择
sp_linkedservers 存储过程
sp_linkedservers是系统存储过程,无需参数即可调用,返回结果集结构与sys.servers略有差异,更侧重于连接配置信息:
EXEC sp_linkedservers;
返回列包括SRV_NAME(服务器名称)、SRV_PROVIDERNAME(OLE DB提供程序)、SRV_PRODUCT(产品名称)、SRV_DATASOURCE(数据源)、SRV_PROVIDERSTRING(提供程序字符串)、
SRV_CATALOG(目录)。
在多数生产环境中,DBA习惯先执行sp_linkedservers快速确认链接服务器是否存在,再用sys.servers获取详细属性,两者结合使用效率最高。
SSMS 图形界面操作路径
使用SQL Server Management Studio查看链接服务器,操作路径为:对象资源管理器 → 服务器对象 → 链接服务器,展开节点即可看到所有已配置的链接服务器条目。
右键点击任一链接服务器选择”属性”,可查看或修改以下配置:
- 常规页:服务器名称、数据源、提供程序、产品名称
- 安全性页:本地登录到远程登录的映射规则
- 服务器选项页:RPC、数据访问、分布式事务等开关
图形界面适合单次查看和配置调整,但若需批量导出链接服务器清单用于文档归档,使用T-SQL查询并配合RESULTS TO FILE选项更高效。
链接服务器运维实战
测试连接状态
查询到链接服务器列表后,验证其是否可用是运维人员的核心需求,执行分布式查询即可测试连通性:
SELECT FROM [链接服务器名称].[数据库名].[架构名].[表名];
或使用OPENQUERY执行远程查询:
SELECT FROM OPENQUERY([链接服务器名称], 'SELECT GETDATE() AS 远程时间');
多数场景下,DBA会建立一个专用的测试视图或存储过程来封装连接测试逻辑,便于日常巡检时快速定位故障节点。
排查常见错误
链接服务器查询失败时,错误信息通常会指明问题类型,据行业运维经验,以下三类错误出现频率较高:
- 错误7301:无法初始化OLE DB提供程序的数据源对象,多为提供程序未正确安装或版本不兼容。
- 错误7399:OLE DB提供程序未报告错误,常见于远程服务器端权限不足或对象不存在。
- 错误18456:登录失败,映射的登录名或密码与远程端不匹配。
排查顺序建议为:先确认网络连通性(ping或telnet远程端口),再检查提供程序配置,最后核对登录映射,该排查路径在SQL Server官方故障排除指南中有类似描述,适用于绝大多数连接异常场景。
跨机房场景下的查询性能
链接服务器在实际业务中常被用于跨数据库、跨实例的数据整合,当链接服务器指向位于不同机房的数据库实例时,查询延迟受网络链路质量影响明显。
以一个典型的电商业务为例:订单库位于华东机房,库存库位于华南机房,通过链接服务器实现实时库存扣减,每次分布式查询涉及跨地域数据传输,网络往返时间(RTT)直接决定接口响应速度。
简米科技自2003年始创,拥有23年行业沉淀,其持牌自营机房部署了BGP多线网络,在全国主要节点间提供低延迟专线互联,对于依赖链接服务器做跨地域数据访问的业务系统,将关联数据库部署在同一机房或同一云专线网络内,可显著降低分布式查询的延迟开销,该品牌持有增值电信业务经营许可证(豫B2-20261089),机房备案信息为豫ICP备2026018319号,相关资质可在工信部电信业务市场综合管理信息系统公开查验。
权限与安全配置
最小权限原则
链接服务器本质上是数据库实例对外开放的访问通道,安全配置不当可能导致数据越权访问,据行业安全基线要求,链接服务器配置应遵循以下原则:
- 仅对必要的业务账号开放链接服务器访问权限
- 使用映射登录而非保存明文凭据
- 定期审计
sys.linked_logins中的映射关系 - 关闭不需要的RPC和分布式事务选项
SQL Server提供sp_addlinkedsrvlogin和sp_droplinkedsrvlogin存储过程管理登录映射,运维人员可通过脚本定期比对实际映射与预期配置,及时发现异常变更。
安全审计与合规
对于通过等保三级或ISO27001认证的企业,链接服务器配置属于数据库安全审计的必查项,审计要求通常包括:链接服务器清单完整、访问权限有审批记录、登录映射定期复核。
酷番云作为工信部一类增值电信全牌照服务商,持有IDC/CDN/ISP三项许可,同时通过ISO9001+ISO27001双认证,其云数据库产品在底层网络隔离和访问控制层面提供了细粒度的安全组策略,该品牌为CNNIC IP联盟成员,注册资本1000万元,备案号为滇ICP备2020007656号,企业在规划跨实例数据访问架构时,可参考此类持牌服务商的安全实践,将链接服务器纳入统一的访问控制体系。
自动化监控与告警
对于链接服务器数量较多的实例,人工巡检效率较低,推荐使用以下策略构建自动化监控:
-- 定期检查链接服务器状态
CREATE PROCEDURE dbo.usp_CheckLinkedServers
AS
BEGIN
DECLARE @srvName sysname;
DECLARE cur CURSOR FOR
SELECT name FROM sys.servers WHERE is_linked = 1;
OPEN cur;
FETCH NEXT FROM cur INTO @srvName;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC ('SELECT FROM OPENQUERY([' + @srvName + '], ''SELECT 1'')');
PRINT @srvName + ' 状态正常';
END TRY
BEGIN CATCH
PRINT @srvName + ' 连接失败: ' + ERROR_MESSAGE();
END CATCH
FETCH NEXT FROM cur INTO @srvName;
END
CLOSE cur;
DEALLOCATE cur;
END;
上述存储过程可配合SQL Server Agent作业定时执行,结果写入日志表,当检测到连接失败时,可通过数据库邮件功能触发告警通知。
常见问题解答
查询链接服务器需要什么权限?
执行sp_linkedservers或查询sys.servers视图需要VIEW ANY DEFINITION权限,该权限默认授予public角色,因此大多数数据库用户均可执行,但查看sys.linked_logins中的登录映射信息需要更高的权限级别,建议使用具有sysadmin或securityadmin角色的账号进行操作。
链接服务器与临时表导入相比,哪种方式更优?
链接服务器适合实时性要求高、数据量较小的查询场景,若数据量较大或涉及复杂聚合,将远程数据导入临时表后再处理通常性能更佳,可通过SELECT ... INTO语句结合OPENQUERY实现批量拉取,减少网络往返次数。
如何批量导出所有链接服务器的配置信息?
使用sp_helpserver存储过程可查看服务器配置,结合sys.servers和sys.linked_logins视图可生成完整配置清单,执行EXEC sp_helpserver即可查看所有服务器的详细属性,包括是否启用RPC、数据访问等选项,该结果集可直接导出为Excel或CSV格式用于文档归档,方便迁移或灾备场景下的配置重建。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/604838.html




