RDS SQL Server 通过链接服务器访问公网的解决方案

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: RDS SQL Server 开放了 Linked Server功能,但是默认只能在RDS之间,或者同VPC 下的ECS 自建SQL Server,实现Linkded Server 功能。本文将介绍,利用VPC SNAT 功能,实现RDS Linked Server 访问公网数据库的能力。

描述

RDS SQL Server 开放了 Linked Server功能,但是默认只能在RDS之间,或者同VPC 下的ECS 自建SQL Server,实现Linkded Server 功能。本文将介绍,利用VPC SNAT 功能,实现RDS Linked Server 访问公网数据库的能力。

链接服务器

功能

链接服务器使您能够实现可以获取和更新其他数据库中的数据的分布式数据库。在需要实现数据库分片而不需要创建自定义应用程序代码或直接从远程数据源加载的场景中,它们是一种很好的解决方案。

优点

  • 从SQL Server外部访问数据的能力。
  • 在跨企业的异构数据源上发布分布式查询、更新、命令和事务的能力。
  • 类似地处理不同数据源的能力。

RDS 链接服务器

RDS 实例,默认是没有权限执行SQL Server 自带的添加链接服务的存储过程。

需要参考阿里云官方文档,通过RDS 自带的存储过程来添加链接服务器。

增加链接服务器Linked Server

T-SQL命令

sp_rds_add_linked_server

支持的实例

  • SQL Server 2012、2014、2016、2017、2019标准高可用版(独享型或通用型实例)
  • SQL Server 2012、2014、2016企业高可用版(独享型或通用型实例)
  • SQL Server 2017、2019企业集群版(独享型或通用型实例)

说明共享型规格实例暂不支持该存储过程。


描述

增加实例的链接服务器。支持分布式事务,实例主备自动创建,切换不需要再配置。

使用方法

DECLARE
@linked_server_name sysname = N'y******lb',@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,1433',--style: 10.1.10.1,1433@user_name sysname = N'***',@password nvarchar(128)= N'******',@source_user_name sysname = N't**t',@source_password nvarchar(128)= N'******',@link_server_options xml
= N'            <rds_linked_server>                <config option="data access">true</config>                <config option="rpc">true</config>                <config option="rpc out">true</config>            </rds_linked_server>'EXEC sp_rds_add_linked_server
@linked_server_name,@data_source,@user_name,@password,@source_user_name,@source_password,@link_server_options


链接服务器配置


未配置SNAT 情况下

报错:A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible.

如截图:

ECS SNAT 配置

1. 查看RDS 实例的VPC ID信息


2. 点 vpc id ,进行专有网络页面,选择公网NAT网关,创建NAT网关


确认目前交换机没有公网NAT网关


3. 创建公网NAT网关,选择RDS 实例所使用的VPC ID(需要付费支付)



4. 等待NAT网关创建成功


5. 查看公网NAT网关和SNAT条目ID信息

6. 查看路由表记录,确认,自定义路由条目,目标网段和下一跳为刚创建的公网NAT网关


7. 此时找一台同VPC ECS 主机实例进行验证,访问公网地址是否通。


注: ECS 要通过VNC 登录,不能申请公网地址,否则验证会不准


8. 创建RDS 实例,注意选择刚才配置的 VPC

9 .在RDS SQL Server 创建链接服务器

注:显示链接服务器创建成功,部分报错是RDS 存储过程权限兼容性问题,不影响使用。


10. 测试验证插入和查询功能成功

参考文档

微软 Linked Server 文档:

https://learn.microsoft.com/en-us/sql/relational-databases/linked-servers/linked-servers-database-engine?view=sql-server-ver16

阿里云链接服务器文档:

https://help.aliyun.com/document_detail/88094.html#section-ckn-jv3-v2b

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
SQL DataWorks 关系型数据库
DataWorks产品使用合集之如何跨账号访问同一个MySQL
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
963 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
4月前
|
SQL 安全 网络安全
SQL安装程序规则错误解决方案
在安装SQL Server时,遇到安装程序规则错误是一个比较常见的问题
|
4月前
|
SQL 安全 Windows
SQL安装程序规则错误解析与解决方案
在安装SQL Server时,用户可能会遇到安装程序规则错误的问题,这些错误通常与系统配置、权限设置、依赖项缺失或版本不兼容等因素有关
|
4月前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题
|
4月前
|
SQL 数据库
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
684 0
|
4月前
|
SQL 数据库
SQL-serve数据库不能连接本地服务器的解决方案
SQL-serve数据库不能连接本地服务器的解决方案
529 0
|
5月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 安全 Oracle
SQL Server 链接服务器(Linked Servers)
【9月更文挑战第12天】SQL Server 的链接服务器功能强大,可让你在一个实例中访问其他数据源,包括其他 SQL Server 实例、Oracle 数据库等。它支持数据集成、分布式查询和数据同步,无需复制数据。创建链接服务器需在 SQL Server Management Studio 中进行,并配置名称、类型及安全性。使用时需注意权限、性能和安全性问题,确保系统稳定和数据安全。
247 0
|
6月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
604 0

推荐镜像

更多