以指令碼大規模將 SQL Server 執行個體連線至 Azure
適用於:SQL Server
重要
如果連線至 Azure Arc 的伺服器已安裝 SQL Server,則 Azure Arc 會自動安裝適用於 SQL Server 的 Azure 延伸模組。 所有 SQL Server 執行個體資源都會在 Azure 中自動建立,為所有 SQL Server 執行個體提供集中式管理平台。
若要自動連接 SQL Server 執行個體,請參閱自動將您的 SQL Server 連線至 Azure Arc。
如果您的伺服器已連線到 Azure,但不會自動部署適用於 SQL Server 的 Azure 擴充功能,請使用本文的方法。
如果使用此方法部署擴充功能,則會在 Arc 機器資源建立 ArcSQLServerExtensionDeployment = Disabled
標籤。
本文將說明如何使用指令碼,以單一工作的方式將安裝在多部 Windows 或 Linux 機器上的 SQL Server 執行個體 連線至 Azure Arc。 機器連線到 Azure 之後,Azure Arc 會自動安裝適用於 SQL Server 的 Azure 延伸模組。 如需詳細資料,請參閱將 SQL Server 自動連線到 Azure Arc。
為了獲得最佳體驗,請使用 Microsoft Entra ID。 使用 Microsoft Entra ID,可讓您定義服務主體。 服務主體是特殊的受限管理身分識別,僅可獲得將機器連線至 Azure,以及針對已啟用 Azure Arc 的伺服器和透過 Azure Arc 啟用的 SQL Server 建立 Azure 資源所需的最小權限。
開始之前,請務必檢閱必要條件,並確定您已建立符合必要權限的自訂角色。
連線多個執行個體
每部電腦都必須安裝 Azure PowerShell。
建立服務主體。 使用
New-AzADServicePrincipal
指令程式。 務必將輸出儲存在變數中。 否則,您之後將無法取得所需的密碼。$sp = New-AzADServicePrincipal -DisplayName "Arc-for-servers" -Role <your custom role> $sp
為服務主體提供存取 Microsoft Graph 的權限。
注意
- 在建立服務主體時,您的帳戶在要用於上線的訂用帳戶上必須是擁有者或使用者存取系統管理員。 如果您沒有足夠的權限可建立角色指派,服務主體仍可建立,但將無法使機器上線。 必要條件中會提供如何建立自訂角色的指示。
擷取儲存在
$sp
變數中的密碼:$credential = New-Object pscredential -ArgumentList "temp", $sp.PasswordCredentials.SecretText $credential.GetNetworkCredential().password
擷取服務主體的租用戶識別碼值:
$tenantId= (Get-AzContext).Tenant.Id
使用適當的安全性做法複製並儲存密碼、應用程式識別碼和租用戶識別碼值。 如果忘記或遺失服務主體密碼,您可使用
New-AzADSpCredential
Cmdlet 加以重設。注意
請注意,適用於伺服器的 Azure Arc 目前不支援使用憑證進行登入,因此服務主體必須具有要驗證的秘密。
遵循將 SQL Server 連線至 Azure Arc 中的指示,從入口網站下載 PowerShell 指令碼。
在 PowerShell ISE 的管理員執行個體中開啟指令碼,並使用稍早所述的服務主體佈建期間產生的值,取代下列環境變數。 這些變數一開始是空的。
$servicePrincipalAppId="{serviceprincipalAppID}" $servicePrincipalSecret="{serviceprincipalPassword}" $servicePrincipalTenantId="{serviceprincipalTenantId}"
在每部目標機器上執行指令碼。
驗證上線是否成功
將 SQL Server 執行個體連線至 Azure 後,請前往 Azure 入口網站檢視新建立的 Azure Arc 資源。 大約 1 分鐘內,您將會看到每個已連線機器的新 Server - Azure Arc
資源,以及每個已連線 SQL Server 執行個體的新 SQL Server - Azure Arc
資源。 如果沒有建立這些資源,表示延伸模組安裝和啟用程式期間發生錯誤。 如需疑難排解選項,請參閱針對適用於 SQL Server 的 Azure 延伸模組問題進行疑難排解。