使用連結的伺服器從 Amazon EC2 上的 Microsoft SQL Server 存取內部部署 Microsoft SQL Server 資料表 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用連結的伺服器從 Amazon EC2 上的 Microsoft SQL Server 存取內部部署 Microsoft SQL Server 資料表

Tirumala Dasari 和 Eduardo Valentim,Amazon Web Services

Summary

此模式說明如何使用連結的伺服器,從在 Amazon Elastic Compute Cloud (Amazon EC2) Windows 或 Linux 執行個體上執行或託管的 Microsoft SQL Server 資料庫存取在 Microsoft Windows 上執行的內部部署 Microsoft SQL Server 資料庫資料表。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • Amazon EC2 搭配在 Amazon Linux AMI 上執行的 Microsoft SQL Server (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 搭配在 Amazon Linux AMI 上執行的 Microsoft SQL Server

  • Amazon EC2 搭配在 Windows AMI 上執行的 Microsoft SQL Server

來源和目標資料庫架構

AWS 雲端 architecture with VPC, availability zones, and hybrid environment connecting to on-premises database.

工具

史詩

任務描述所需的技能

透過 SSMS 連線至 Windows SQL Server。

DBA

從 Windows SQL Server 執行個體的內容 (按一下滑鼠右鍵) 選單,將 SQL Server 中的身分驗證模式變更為 Windows。

DBA
任務描述所需的技能

重新啟動 SQL 服務。

  1. 在 SSMS Object Explorer 中,選擇 SQL Server 執行個體。

  2. 開啟內容 (按一下滑鼠右鍵) 選單。

  3. 選擇重新啟動

DBA
任務描述所需的技能

在安全索引標籤中,開啟登入的內容 (按一下滑鼠右鍵) 選單,然後選取新的登入。

DBA

在一般索引標籤中,選擇 SQL Server 身分驗證、輸入使用者名稱、輸入密碼,然後確認密碼,並清除在下次登入時變更密碼的選項。

DBA

在伺服器角色索引標籤中,選擇公有。

DBA

在使用者映射索引標籤中,選擇您要存取的資料庫和結構描述,然後反白顯示資料庫以選取資料庫角色。

選取公有和 db_datareader 以從資料庫資料表存取資料。

DBA

選擇確定以建立使用者。

DBA
任務描述所需的技能

透過終端機視窗連線至 Linux SQL Server 方塊。

DBA

開啟 /etc/hosts 檔案,並使用 SQL Server 新增 Windows 機器的 IP 地址。

DBA

儲存主機檔案。

DBA
任務描述所需的技能

使用預存程序 master.sys.sp_addlinkedserver 和 master.dbo.sp_addlinkedsrvlogin 建立連結的伺服器。

如需使用這些預存程序的詳細資訊,請參閱其他資訊一節。

DBA、開發人員
任務描述所需的技能

在 SSMS 的 Linux SQL Server 中,前往連結的伺服器並重新整理。

DBA

在左側窗格中展開建立的連結伺服器和目錄。

您將看到選取的 SQL Server 資料庫,其中包含資料表和檢視。

DBA
任務描述所需的技能

在 SSMS 查詢視窗中,執行查詢:「從 【sqllin】.dms_sample_win.dbo.mlb_data 選取前 3 *」。

請注意, FROM 子句使用四部分語法: computer.database.schema.table (例如 SELECT 名稱 "SQL2 database" FROM 【sqllin】.master.sys.databases)。在我們的範例中,我們在主機檔案中建立了 SQL2 的別名,因此您不需要在方括號之間輸入實際的 NetBIOS 名稱。如果您確實使用實際的 NetBIOS 名稱,請注意,AWS 預設為 NetBIOS 名稱,例如 Win-xxxx,SQL Server 需要有破折號名稱的方括號。

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:在預存程序 中輸入您先前在 Windows SQL Server 中建立的登入憑證master.dbo.sp_addlinkedsrvlogin

注意 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