使用脚本将 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

  1. 创建服务主体。 使用 New-AzADServicePrincipal cmdlet。 请确保将输出存储在变量中。 否则,稍后将无法检索所需的密码。

    $sp = New-AzADServicePrincipal -DisplayName "Arc-for-servers" -Role <your custom role>
    $sp
    
  2. 向服务主体授予访问 Microsoft Graph 的权限。

    注意

    • 创建服务主体时,你的帐户必须是要用于加入的订阅中的“所有者”或“用户访问管理员”。 如果你没有足够的权限创建角色分配,则可能会创建服务主体,但它将无法加入计算机。 先决条件中提供了有关如何创建自定义角色的说明。
  3. 检索存储在 $sp 变量中的密码:

    $credential = New-Object pscredential -ArgumentList "temp", $sp.PasswordCredentials.SecretText 
    $credential.GetNetworkCredential().password
    
  4. 检索服务主体的租户 ID 值:

    $tenantId= (Get-AzContext).Tenant.Id
    
  5. 使用适当的安全做法复制并保存密码、应用程序 ID 和租户 ID 值。 如果忘记或丢失了服务主体密码,可以使用 New-AzADSpCredential cmdlet 重置它。

    注意

    请注意,Azure Arc for servers 目前不支持使用证书进行登录,因此服务主体必须具有用于进行身份验证的机密。

  6. 按照将 SQL Server 连接到 Azure Arc 中的说明,从门户下载 PowerShell 脚本。

  7. 在 PowerShell ISE 的管理员实例中打开该脚本,并使用前述服务主体预配过程中生成的值替换以下环境变量。 这些变量最初为空。

    $servicePrincipalAppId="{serviceprincipalAppID}"
    $servicePrincipalSecret="{serviceprincipalPassword}"
    $servicePrincipalTenantId="{serviceprincipalTenantId}"
    
  8. 在每台目标计算机上执行脚本。

验证成功加入

将 SQL Server 实例连接到 Azure 后,请转到 Azure 门户,查看新创建的 Azure Arc 资源。 在大约 1 分钟内,你会看到每台已连接的计算机都对应一个新的 Server - Azure Arc 资源,每个已连接的 SQL Server 实例都对应一个新的 SQL Server - Azure Arc 资源。 如果没有创建这些资源,则表示扩展的安装和激活过程中出现了问题。 有关故障排除选项,请参阅排查适用于 SQL Server 的 Azure 扩展的问题

该屏幕截图显示了一次成功加入。

后续步骤