SSMS连接Azure SQL时找不到Linked Servers选项的问题咨询
问题成因
Azure SQL 单库/弹性池产品原生不支持 Linked Server 功能,该功能仅在本地自托管 SQL Server、Azure SQL 托管实例(SQL MI)中提供,这是你通过 SSMS 连接 Azure SQL 时看不到 Server Objects 及 Linked Servers 入口的根本原因。
可行解决方案
- 方案1:调整Azure侧部署架构,将现有Azure SQL单库迁移至Azure SQL 托管实例。托管实例完整兼容本地SQL Server的绝大多数功能,包含Linked Server能力,迁移完成后即可在SSMS中正常看到Linked Servers入口,按常规流程配置到MySQL的链接即可。
- 方案2:保留现有Azure SQL单库,使用弹性查询(Elastic Query)功能实现跨源查询MySQL数据,核心配置步骤如下:
- 创建数据库主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '自定义高强度密码';- 创建MySQL访问凭据
CREATE DATABASE SCOPED CREDENTIAL MySQL_Cred WITH IDENTITY = 'MySQL登录用户名', SECRET = 'MySQL登录密码';- 创建指向MySQL的外部数据源
CREATE EXTERNAL DATA SOURCE MySQL_Source WITH ( LOCATION = 'mysql://<MySQL服务器地址>:<端口>', CREDENTIAL = MySQL_Cred, CONNECTION_OPTIONS = 'Database=<目标MySQL库名>' );- 为需要查询的MySQL表创建对应外部表映射,配置完成后即可直接在SSMS中查询该外部表获取MySQL侧数据,实现和Linked Server一致的查询效果。
- 方案3:如果仅需要临时在SSMS中查询MySQL数据,不需要Azure SQL与MySQL的持久化关联,可直接使用SSMS 18.9及以上版本单独连接MySQL实例,无需依赖Linked Server功能。
内容的提问来源于stack exchange,提问作者michaelascend
相关产品推荐
相关产品推荐

