EC2使用链接SQL服务器从亚马逊上的微软SQL服务器访问本地微软服务器表 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EC2使用链接SQL服务器从亚马逊上的微软SQL服务器访问本地微软服务器表

由 Tirumala Dasari (AWS) 和 Eduardo Valentim () 创作 AWS

摘要

此模式描述了如何使用链接SQL服务器从运行或托管在亚马逊弹性计算云 (亚马逊EC2) Windows 或 Linux 实例上的微软SQL服务器数据库访问在微软 Windows 上运行的本地微软服务器数据库表。

先决条件和限制

先决条件

  • 一个活跃的AWS账户

  • 亚马逊EC2,微软SQL服务器在亚马逊 Linux 上运行AMI(亚马逊机器映像)

  • AWS本地微软SQL服务器 (Windows) 服务器和 Windows 或 Linux EC2 实例之间的 Direct Connect

产品版本

  • SQL服务器 2016 或更高版本

架构

源技术堆栈

  • 在 Windows 上运行的本地微软SQL服务器数据库

  • 亚马逊EC2的微软SQL服务器在 Windows AMI 或 Linux 上运行 AMI

目标技术堆栈

  • 亚马逊EC2,微软SQL服务器在亚马逊 Linux 上运行 AMI

  • 亚马逊EC2的微软SQL服务器在 Windows 上运行 AMI

源数据库和目标数据库架构

AWS Cloud architecture with VPC, availability zones, EC2 instances, and hybrid environment setup.

工具

操作说明

任务描述所需技能

通过 Connect 连接到 Windows SQL 服务器SSMS。

DBA

从 Windows SQL 服务器实例的上下文(右键单击)菜单将身份验证模式更改为SQL服务器中的 Windows。

DBA
任务描述所需技能

重新启动 SQL 服务。

  1. 在SSMS对象资源管理器中,选择SQL服务器实例。

  2. 打开上下文(右键单击)菜单。

  3. 选择重新启动

DBA
任务描述所需技能

在“安全”选项卡中,打开“登录”的上下文(右键单击)菜单,然后选择新的登录名。

DBA

在 “常规” 选项卡中,选择 “SQL服务器身份验证”,输入用户名,输入密码,然后确认密码并清除下次登录时更改密码的选项。

DBA

在“服务器角色”选项卡中,选择“公共”。

DBA

在“用户映射”选项卡中,选择要访问的数据库和架构,然后突出显示该数据库以选择数据库角色。

选择“public”和“db_datareader”以访问数据库表中的数据。

DBA

选择“确定”以创建用户。

DBA
任务描述所需技能

通过终端窗口连接到 Linux SQL 服务器盒子。

DBA

打开the /etc/hosts文件并添加带有SQL服务器的 Windows 计算机的 IP 地址。

DBA

保存主机文件。

DBA
任务描述所需技能

使用存储过程 master.sys.sp_addlinkedserver 和 master.dbo.sp_addlinkedsrvlogin 创建链接服务器。

有关使用这些存储过程的详细信息,请参阅其他信息部分。

DBA,开发者
任务描述所需技能

在的 Linux SQL 服务器中SSMS,转至 “链接服务器” 并刷新。

DBA

在左窗格中展开创建的链接服务器和目录。

您将看到带有表和视图的选定SQL服务器数据库。

DBA
任务描述所需技能

在SSMS查询窗口中,运行查询:“从 [sqllin] .dms_sample_win.dbo.mlb_data 中选择前 3 名 *”。

请注意,该FROM子句使用由四部分组成的语法:computer.database.schema.table(例如,SELECT命名 “数据库” [sqllin] .master.sys.databases)。SQL2 FROM在我们的示例中,我们在主机文件SQL2中为创建了别名,因此您无需在方括号之间输入实际的网络BIOS名称。如果您确实使用实际的网络名称,请注意AWS默认使用网络BIOS名称,例如Win-xxxx,并且SQL服务器要求使用方括号表示带有破折号的名称。BIOS

DBA,开发者

相关资源

 

其他信息

使用存储过程创建链接服务器

SSMS不支持为 Linux SQL Server 创建链接服务器,因此必须使用以下存储过程来创建它们:

EXEC master.sys.sp_addlinkedserver @server= N'SQLLIN' , @srvproduct= N'SQL Server'     EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SQLLIN',@useself=N'False',@locallogin=NULL,@rmtuser=N'username',@rmtpassword='Test123$'

注意 1:在存储过程中master.dbo.sp_addlinkedsrvlogin输入你之前在 Windows SQL Server 中创建的登录凭证。

注 2:@server 名称 SQLLIN 和主机文件条目名称 172.12.12.4 SQLLIN 应相同。

您可以使用此过程为以下方案创建链接服务器:

  • 通过链接SQL服务器将 Linux SQL 服务器连接到 Windows 服务器(如本模式中所指定)

  • 通过链接SQL服务器将 Windows SQL 服务器连接到 Linux 服务器

  • 通过链接SQL服务器将 Linux SQL 服务器连接到另一台 Linux 服务器