当前位置: 首页 > news >正文

SQL Server 中创建链接服务器

方法 1:通过 SQL Server Management Studio (SSMS) 图形界面

  1. 打开 SSMS 并连接到目标实例
    登录到你要创建链接服务器的 SQL Server 实例。

  2. 导航到链接服务器配置
    在对象资源管理器中展开:

    Server Objects -> Linked Servers

    右键单击 Linked Servers,选择 New Linked Server

  3. 填写常规配置

    • Linked server:输入链接服务器的名称(自定义,如 RemoteSQL)。

    • Server type:选择服务器类型:

      • 其他 SQL Server:选 SQL Server

      • 其他数据库(如 Oracle、MySQL):选 Other data source,并指定提供程序(如 Microsoft OLE DB Provider for ODBC Drivers)。

    • Provider:选择对应的数据库驱动(如 SQL Server Native Client)。

    • Product name:输入数据库类型(如 MySQL)。

    • Data source:输入目标服务器的地址或 ODBC 数据源名称(DSN)。

  4. 配置安全性

    • 在 Security 选项卡中,添加本地登录到远程登录的映射:

      • Local Login:本地 SQL Server 登录名。

      • Impersonate:勾选以使用本地登录凭据(需权限)。

      • Remote User 和 Remote Password:目标服务器的登录凭据。

    • 或选择 Be made using the login's current security context(使用当前连接的安全上下文)。

  5. 设置服务器选项
    在 Server Options 选项卡中调整参数(如 RPC 和 RPC Out 设为 True 以支持远程存储过程)。

  6. 测试连接
    完成后,右键点击新建的链接服务器,选择 Test Connection


方法 2:通过 T-SQL 脚本

使用系统存储过程 sp_addlinkedserver 和 sp_addlinkedsrvlogin

示例 1:链接到另一个 SQL Server
-- 创建链接服务器
EXEC sp_addlinkedserver@server = 'RemoteSQL', -- 链接服务器名称@srvproduct = 'SQL Server',@provider = 'SQLNCLI',@datasrc = '192.168.1.100\SQLEXPRESS'; -- 目标服务器地址或实例名-- 配置登录凭据
EXEC sp_addlinkedsrvlogin@rmtsrvname = 'RemoteSQL',@useself = 'FALSE', -- 不使用当前用户凭据@locallogin = NULL, -- 所有本地登录使用以下凭据@rmtuser = 'sa',@rmtpassword = 'password123';
示例 2:链接到 Oracle
EXEC sp_addlinkedserver@server = 'OracleDB',@srvproduct = 'Oracle',@provider = 'MSDAORA',@datasrc = 'ORCL'; -- Oracle 服务名EXEC sp_addlinkedsrvlogin@rmtsrvname = 'OracleDB',@useself = 'FALSE',@rmtuser = 'scott',@rmtpassword = 'tiger';
示例 3:链接到 MySQL(需安装 ODBC 驱动)
  1. 先在系统中配置 ODBC 数据源(DSN)。

  2. 创建链接服务器:

EXEC sp_addlinkedserver@server = 'MySQL_Linked',@srvproduct = 'MySQL',@provider = 'MSDASQL',@datasrc = 'MySQL_DSN'; -- ODBC 数据源名称

验证链接服务器

-- 查询远程表
SELECT * FROM RemoteSQL.AdventureWorks2019.dbo.Employees;-- 执行远程存储过程
EXEC RemoteSQL.master.dbo.sp_helpdb;

常见问题

  1. 权限不足
    确保远程登录用户有访问目标数据库的权限。

  2. 连接超时/网络问题
    检查防火墙是否放行 SQL Server 端口(默认 1433)。

  3. 提供程序未注册
    安装对应数据库的 OLE DB 或 ODBC 驱动(如 Oracle Instant Client)。

  4. 错误:无法初始化链接服务器
    检查 @datasrc 或 @provstr 参数是否正确,或尝试在连接字符串中添加额外参数:

    @provstr = 'Driver={SQL Server};Server=192.168.1.100;Database=AdventureWorks;'
http://www.xdnf.cn/news/711811.html

相关文章:

  • android无root抓包(PCAPdroid)
  • Spring框架学习day1--基础概念
  • 深度解析UniApp盲盒系统开发:从源码架构到多端部署全流程
  • 基于STM32F10X的BMP280程序
  • 滚珠导轨:电子制造“纳米级”精度的运动基石
  • 如何用命令行将 PDF 表格转换为 HTML 表格
  • 责任链模式:构建灵活可扩展的请求处理体系(Java 实现详解)
  • ZYNQ移植FreeRTOS和固化和openAMP双核
  • 设备制造行业项目管理难点解析,如何有效解决?
  • 塔能科技:为多行业工厂量身定制精准节能方案
  • Kotlin 活动事件通讯跳转深度讲解
  • 职业本科院校无人机专业人才培养解决方案
  • KeePass安装与KeePass设置中文教程
  • springboot多模块父pom打包正常,单模块报错
  • clickhouse如何查看操作记录,从日志来查看写入是否成功
  • 湖北理元理律师事务所债务优化实践:在还款与生活间寻找平衡支点
  • [NOIP 2001 普及组] 数的计算 Java
  • 高防IP能抗住500G攻击吗?
  • PostgreSQL的聚集函数
  • Nest全栈到失业(三):半小时图书管理系统-User
  • Ubuntu 22.04 上安装 PostgreSQL(使用官方 APT 源)
  • CRMEB 单商户Java版 v2.3公测版发布,欢迎体验!
  • 收集飞花令碎片——C语言(数组+函数)
  • 酷派Cool20/20S/30/40手机安装Play商店-谷歌三件套-GMS方法
  • 小程序为什么要安装SSL安全证书
  • LeetCode 55 45:跳跃游戏与跳跃游戏 II - 贪心算法详解
  • 前端开发中 <> 符号解析问题全解:React、Vue 与 UniApp 场景分析与解决方案
  • 题目 3298: 蓝桥杯2024年第十五届决赛真题-兔子集结
  • WPF log4net用法
  • STM32 AD单通道与多通道实战指南