为适用于 MySQL 的亚马逊 RDS 和适用于 MariaDB 的亚马逊 RDS 创建关联服务器访问权限

链接服务器允许微软 SQL Server 在数据库服务器的其他实例上运行 SQL Server 语句。当你需要实现数据库分片而无需创建自定义应用程序代码或直接从远程数据源加载时,它们是一个很好的解决方案。在这篇文章中,我们重点介绍为适用于 MySQL 的 亚马逊关系数据库服务 (亚马逊 RDS) 和适用于 Mari a DB 的 亚马逊 RDS 创建链接服务器访问权限。

解决方案概述

我们研究了每项服务在 亚马逊弹性计算云 (亚马逊 EC2)或本地使用 SQL Server 的连接方案。

我们使用 SQL Server 管理工作室 (SSMS) 连接到在本地和外部服务器上运行的 SQL Server 实例。SSMS 需要系统管理员权限才能使用图形界面创建链接服务器。

对于以下每种情况,您都必须通过安全组为数据库服务器的每个入站实例使用相应的 TCP 端口来允许网络流量。换句话说,如果您要将亚马逊 EC2 SQL 服务器连接到适用于 MySQL 的亚马逊 RDS,则必须允许来自 EC2 实例 IP 地址以及 MySQL 用来监听数据库通信的端口的流量。

先决条件

确保您具备以下先决条件:

  • 适用于 MySQL 和 MariaDB 的 ODBC 驱动程序
  • SQL 服务器管理工作室
  • 适用于 MySQL 的 RDS 数据库(有关说明,请参阅使用 亚马逊 RDS 创建和连接 MySQL 数据库
  • 适用于 MariaDB 的 RDS(请参阅使用亚马逊 RDS 创建并连接到 MariaDB 数据库

就本演示而言,RDS 数据库实例位于公有子网中,SQL Server 版本为 15.0。

将 SQL 服务器连接至适用于 MySQL 的亚马逊

在这种情况下,一个 EC2 或 SQL Server 的本地实例正在连接到 RDS for MySQL 实例。确保您已完成获取 MySQL ODBC 驱动程序 的先决条件, 并将其安装在 EC2 实例或与 SSMS 一起运行 SQL Server 数据库的本地计算机上。

以下是建立从公有子网内的 EC2 实例上运行的 SQL Server 到同一 VPC 内私有子网内的 RDS 数据库的链接服务器连接的示例架构。

有关更多信息,请参阅 访问 VPC 中数据库实例的 场景

使用 ODBC 连接器创建 DSN

要使用 ODBC 连接器创建 DSN,请完成以下步骤:

  1. 从 Windows 管理工具 菜单中,选择 数据源 (ODBC) , 然后选择 系统 DSN 以添加 DSN 条目。
  2. 选择要为其设置数据源的 MySQL 驱动程序。

出于演示的目的,我们创建了一个适用于 MySQL 的 RDS 8.0.28 数据库。

接下来,我们收集 MySQL 连接器和 ODBC 数据源配置的详细信息。

  1. 在亚马逊 RDS 控制台上,选择 MySQL 数据库实例。
  2. 在 “ 连接和安全 ” 选项卡上,复制端点和端口详细信息。

TCP/IP 服务器名称是 MySQL 数据库的端点 URL。

  1. 输入创建实例时设置的 RDS for MySQL 数据库的 DSN 名称、主用户名和密码。

现在,您应该成功将 ODBC 连接到在亚马逊 RDS 上运行的 MySQL 服务器。

创建和配置链接服务器

要设置链接服务器,请完成以下步骤:

  1. 打开 SSMS 并使用 Windows 身份验证连接到本地服务器。
  2. 在导航窗格中,展开 “ 服务器选项 ” 并添加新的链接服务器。
  3. 对于数据源名称,请使用您之前创建的 DSN。
  4. 在 “ 安全 ” 页面上,使用当前的安全上下文进行远程服务器登录。
  5. 在 “ 服务器选项 ” 页面上,将 RPC、 RPC OUT 和 “ 使用远程归类” 的值设置为 Tru e。
  6. 选择 OK 建立连接。

现在你应该能够连接到在亚马逊 RDS 中运行的 MySQL 服务器了。

如果适用于 MySQL 的 RDS 实例是私有实例(即没有公有 IP 地址的 RDS 实例),则 EC2 实例(SQL Server)需要与适用于 MySQL 的 RDS 实例位于同一 VPC 中才能进行连接。如果需要本地连接,则必须在公司网络和 RDS for MySQL 服务器安装所使用的 VPC 上的子网之间建立路由。借助 亚马逊云科技 Di rect Connect 或 A WS 站点到站点 VPN 连接,将您的 亚马逊云科技 环境安全地连接到 您的本地数据中心。

如果 MySQL 实例是公开可用的(即可供公共互联网使用),则此场景也适用于任何 SQL Server 安装。

将 SQL 服务器连接到适用于 MariaDB 的亚马逊 RDS

在这种情况下,一个 EC2 或 SQL Server 的本地实例正在连接到适用于 MariaDB 的 RDS 实例。确保已完成下载当前版本系列 MariaDB Connector/ODBC 3.1.16 的先决条件。获取 Maria DB ODBC 驱动程序 并将其安装在 EC2 实例或与 SSMS 一起运行 SQL Server 数据库的本地计算机上。

使用 ODBC 连接器创建 DSN

要使用 ODBC 连接器创建 DSN,请完成以下步骤:

  1. 从 Windows 管理工具 菜单中,选择 数据源 (ODBC) , 然后选择 系统 DSN 以添加 DSN 条目。
  2. 选择要为其设置数据源的 MariaDB 驱动程序。

出于演示的目的,我们使用适用于 MariaDB 引擎的 RDS 版本 10.6.7。

接下来,我们收集 MariaDB 连接器和 ODBC 数据源配置的详细信息。

  1. 在亚马逊 RDS 控制台上,选择 MariaDB 数据库实例。
  2. 在 “ 连接和安全 ” 选项卡上,复制端点和端口详细信息。

TCP/IP 服务器名称是 MariaDB 的端点 URL。

  1. 输入数据源的 DSN 名称。
  2. 输入创建实例时设置的 RDS for MariaDB 数据库的主用户名和密码。

现在,您应该成功将 ODBC 连接到在亚马逊 RDS 上运行的 MariaDB 服务器。

创建和配置链接服务器

要设置链接服务器,请完成以下步骤:

  1. 打开 SSMS 并使用 Windows 身份验证连接到本地服务器。
  2. 在导航窗格中,展开 “ 服务器选项 ” 并添加新的链接服务器。
  3. 对于数据源名称,请使用您之前创建的 DSN。
  4. 在 “ 安全 ” 页面上,使用当前的安全上下文进行远程服务器登录。
  5. 在 “ 服务器选项 ” 页面上,将 RPC、 RPC OUT 和 “ 使用远程归类” 的值设置为 Tru e。
  6. 选择 OK 建立连接。

现在你应该能够连接到在亚马逊 RDS 中运行的 MariaDB 服务器。

如果适用于 MariaDB 的 RDS 实例是私有实例(没有公有 IP 地址的 RDS 实例),那么 EC2 实例(SQL Server)需要与适用于 MariaDB 的 RDS 实例位于同一 VPC 中才能进行连接。如果需要本地连接,则必须在公司网络和 RDS for MariaDB 服务器安装所使用的 VPC 上的子网之间建立路由。借助直接连接或 亚马逊云科技 站点到站点 VPN 连接,将您的 亚马逊云科技 环境安全地连接到您的本地数据中心。

如果 MariaDB 服务器实例是公开可用的(可在公共互联网上使用),则此场景也适用于任何 SQL Server 安装。

结论

链接服务器允许微软 SQL Server 在数据库服务器的其他实例上运行 SQL Server 语句。链接服务器提供了对整个企业的异构数据源发出分布式查询、更新、命令和事务的能力。

在这篇文章中,我们重点讨论了与 亚马逊 R DS 中的其他 SQL Server 实例的连接 ,这些实例托管在 亚马逊 EC2 中 ,或者通过 VPN 或直接连接从您的数据中心获得。你可以使用本文中的解决方案作为基础,使用适用于微软 SQL Server 的 Amazon RDS 实现关联服务器,然后将其扩展到包括其他服务,例如 亚马逊 Aurora MySQL 兼容版 和 Aurora MySQL Serverless。

我们鼓励您在运行 Amazon RDS 的 亚马逊云科技 账户中试用此解决方案。如果您有任何反馈,请在下面留言。


作者简介

Nayan Karumuri 是亚马逊网络服务的高级解决方案架构师。他与客户合作,在 亚马逊云科技 云中设计可扩展、高度可用和安全的解决方案。他热衷于与客户深入合作,构建支持不同行业业务创新的创造性解决方案。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。