本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用链接服务器从 Amazon EC2 上的 Microsoft SQL Server 访问本地 Microsoft SQL Server 表
由 Tirumala Dasari (AWS) 和 Eduardo Valentim (AWS) 创建
环境:PoC 或试点 | 技术:数据库 | 工作负载:Microsoft |
Summary
此模式介绍如何使用链接服务器从在 Amazon Elastic Compute Cloud(Amazon EC2)Windows 或 Linux 实例上运行或托管的 Microsoft SQL Server 数据库访问在 Microsoft Windows 上运行的本地 Microsoft SQL Server 数据库表。
先决条件和限制
先决条件
一个有效的 Amazon Web Services account
在 Amazon Linux AMI 上运行具有 Microsoft SQL Server 的 Amazon EC2 (Amazon Machine Image)
本地 Microsoft SQL Server (Windows) 服务器与 Windows 或 Linux EC2 实例之间的 AWS Direct Connect
产品版本
SQL Server 2016 或更高版本
架构
源技术堆栈
在 Windows 上运行的本地 Microsoft SQL Server 数据库
Amazon EC2 和在 Windows AMI 或 Linux AMI 上运行的 Microsoft SQL Server
目标技术堆栈
Amazon EC2 和 Microsoft SQL Server 在 Amazon Linux AMI 上运行
Amazon EC2 和 Microsoft SQL Server 在 Windows AMI 上运行
源数据库和目标数据库架构
![](images/pattern-img/8e4a3222-0850-4980-8028-c710dcdb9186/images/fa157992-0ed9-46e1-8059-0cbbb74a98ec.png)
工具
Microsoft SQL Server Management Studio (SSMS)
是用于管理 SQL Server 基础结构的集成环境。它提供了用户界面和一组工具,其中包含与 SQL Server 交互的丰富脚本编辑器。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
通过 SSMS 连接到 Windows SQL Server。 | 数据库管理员 | |
从 Windows SQL Server 实例的上下文(右键单击)菜单中将身份验证模式更改为 SQL Server 中的 Windows。 | 数据库管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
重新启动 SQL 服务。 |
| 数据库管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
在“安全”选项卡中,打开“登录”的上下文(右键单击)菜单,然后选择新的登录名。 | 数据库管理员 | |
在“常规”选项卡中,选择“SQL Server 身份验证”,输入用户名,输入密码,然后确认密码并清除用于在下次登录时更改密码的选项。 | 数据库管理员 | |
在“服务器角色”选项卡中,选择“公共”。 | 数据库管理员 | |
在“用户映射”选项卡中,选择要访问的数据库和架构,然后突出显示该数据库以选择数据库角色。 | 选择“public”和“db_datareader”以访问数据库表中的数据。 | 数据库管理员 |
选择“确定”以创建用户。 | 数据库管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
通过终端窗口连接到 Linux SQL Server 框。 | 数据库管理员 | |
打开 /etc/hosts 文件,并使用 SQL Server 添加 Windows 计算机的 IP 地址。 | 数据库管理员 | |
保存主机文件。 | 数据库管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
使用存储过程 master.sys.sp_addlinkedserver 和 master.dbo.sp_addlinkedsrvlogin 创建链接服务器。 | 有关使用这些存储过程的详细信息,请参阅其他信息部分。 | 数据库管理员、开发人员 |
任务 | 描述 | 所需技能 |
---|---|---|
在 SSMS 的 Linux SQL Server 中,转到“链接服务器”并刷新。 | 数据库管理员 | |
在左窗格中展开创建的链接服务器和目录。 | 您将看到选定的 SQL Server 数据库以及表和视图。 | 数据库管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
在 SSMS 查询窗口中,运行查询:“select top 3 * from [sqllin].dms_sample_win.dbo.mlb_data”。 | 请注意,FROM 子句使用由四部分组成的语法:computer.database.schema.table (例如,SELECT name “SQL2 databases” FROM [sqllin].master.sys.databases)。在我们的示例中,我们在 hosts 文件中为 SQL2 创建了一个别名,因此您不需要在方括号之间输入实际的 NetBIOS 名称。如果您使用实际的 NetBIOS 名称,请注意,AWS 默认使用 Win-xxxx 等 NetBIOS 名称,并且 SQL Server 要求使用方括号作为带破折号的名称。 | 数据库管理员、开发人员 |
相关资源
其他信息
使用存储过程创建链接服务器
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
应相同。
您可以使用此过程为以下方案创建链接服务器:
Linux SQL Server 通过链接服务器到 Windows SQL Server(在此模式中指定)
Windows SQL Server 通过链接服务器到 Linux SQL Server
Linux SQL Server 通过链接服务器连接到另一个 Linux SQL Server