Поделиться через


Настройка SQL Server, включенная Azure Arc

Область применения: SQL Server

Каждый сервер с поддержкой Azure Arc включает набор свойств, применяемых ко всем экземплярам SQL Server, установленным на этом сервере. Эти свойства можно настроить после установки расширения Azure для SQL Server на компьютере. Однако свойства вступают в силу только в том случае, если установлен экземпляр ИЛИ экземпляр SQL Server. В портал Azure область обзора SQL Server, включенная Azure Arc, отражает, как конфигурация SQL Server влияет на конкретный экземпляр.

Необходимые компоненты

  • У вас есть роль участника по крайней мере в одной из подписок Azure, созданных вашей организацией. Узнайте, как создать новую подписку на выставление счетов.

  • У вас есть роль участника для группы ресурсов, в которой будет зарегистрирован экземпляр SQL Server. Дополнительные сведения см. в разделе "Управляемые группы ресурсов Azure".

  • Microsoft.HybridCompute Поставщики Microsoft.AzureArcData ресурсов регистрируются в каждой подписке, используемой для выставления счетов по мере использования SQL Server.

Регистрация поставщиков ресурсов

Чтобы зарегистрировать поставщиков ресурсов, используйте один из следующих методов:

  1. Выберите Подписки.
  2. Выберите свою подписку.
  3. В разделе Параметры выберите Поставщики ресурсов.
  4. Microsoft.AzureArcData Найдите и Microsoft.HybridComputeнажмите кнопку "Зарегистрировать".

Изменение конфигурации SQL Server

Вы можете использовать портал Azure, Azure PowerShell или Azure CLI для изменения всех или некоторых параметров конфигурации на определенном сервере с поддержкой Azure Arc в нужное состояние.

Чтобы изменить конфигурацию SQL Server для большей области (например, группы ресурсов, подписки или нескольких подписок) с помощью одной команды, используйте modify-license-type.ps1 сценарий PowerShell. Он публикуется как пример SQL Server с открытым исходным кодом и включает пошаговые инструкции.

Рекомендуется запустить скрипт из Azure Cloud Shell, так как:

  • Он имеет необходимые модули Azure PowerShell, предварительно установленные.
  • Он автоматически проходит проверку подлинности.

Дополнительные сведения см. в разделе "Запуск скрипта с помощью Cloud Shell".

Существует два способа настройки узла SQL Server в портал Azure:

  • Откройте панель обзора SQL Server с поддержкой Azure Arc и выберите конфигурацию SQL Server.

    Снимок экрана: панель

  • Откройте панель обзора SQL Server с поддержкой Azure Arc и выберите "Свойства". В разделе конфигурации SQL Server выберите параметр, который необходимо изменить:

    • Тип лицензии
    • Подписка ESU
    • Автоматизированное исправление

    Снимок экрана: область конфигурации экземпляра SQL Server в портал Azure.

Установка свойства типа лицензии

Выберите один из типов лицензий. Описание см. в разделе "Типы лицензий".

Использование лицензии на физическое ядро

Установите флажок "Использовать физическую базовую лицензию", если вы настраиваете виртуальную машину и используете неограниченное преимущество виртуализации для лицензирования программного обеспечения SQL Server или подписки SQL. Он задает для свойства UsePhysicalCoreLicense конфигурации узла значение True. Если установлен этот флажок, лицензия на физическое ядро (p-core) имеет приоритет, а затраты на программное обеспечение SQL Server будут иметь значение NULL.

Внимание

Если лицензия p-core настроена с помощью плана выставления счетов по мере использования, выбранное значение типа лицензии должно быть оплатой по мере использования. Этот выбор не запускает дополнительные расходы на уровне виртуальной машины, но обеспечивает непрерывное лицензирование и выставление счетов, если лицензия p-core деактивирована или удалена.

Подписка на расширенные обновления системы безопасности

Вы можете подписаться на расширенные обновления системы безопасности (ESUS) для отдельного узла. Чтобы претендовать на подписку ESU, узел должен иметь тип лицензии с оплатой по мере использования или лицензии с помощью Software Assurance. Этот параметр позволяет подписаться с помощью виртуальных ЦП (v-cores), если узел является виртуальной машиной или с помощью физических ядер, когда узел является физическим сервером, который работает без использования виртуальных машин.

Выберите подписку на расширенные обновления системы безопасности. Он задает для свойства EnabelExtendedSecurityUpdates конфигурации узла значение True. Подписка активируется после нажатия кнопки "Сохранить".

Дополнительные сведения о параметрах лицензирования ESU см. в статье "Подписка на расширенные обновления безопасности" в рабочей среде.

Примечание.

В отличие от лицензии P-core ESU, при подписке на ESUs для узла вам не нужно определять количество оплачиваемых ядер для каждого компьютера. Расширение Azure для SQL Server определяет размер узла, тип узла (виртуальный или физический) и выпуск SQL Server. Счета за расширение соответствуют этим параметрам.

После включения ESUs нельзя изменить значение типа лицензии узла на "Лицензия" только до отмены подписки ESU.

Использование лицензии ESU физического ядра

Установите флажок "Использовать физическое ядро ESU", если вы настраиваете виртуальную машину и используете неограниченное преимущество виртуализации при включении подписки ESU. Он задает значение UseEsuPhysicalCoreLicense true.

Если установить флажок, то лицензия p-core имеет приоритет, а плата за ESU SQL Server на уровне виртуальной машины будет иметь значение NULL.

Отмена подписки на расширенные обновления системы безопасности

Вы можете отменить расширенные обновления безопасности, включенные Azure Arc в любое время. Отмена немедленно останавливает расходы ESU. Выберите "Отменить подписку" из расширенных обновлений системы безопасности. Подписка заканчивается после нажатия кнопки "Сохранить".

Добавление в список исключенных экземпляров

Некоторые экземпляры можно исключить из масштабируемых операций подключения, управляемых политиками Azure или автоматическим подключением. Чтобы исключить определенные экземпляры из этих операций, добавьте имена экземпляров в список "Пропустить экземпляры ". Дополнительные сведения о параметрах подключения в масштабе см. в статье "Альтернативные варианты развертывания" для SQL Server, включенных Azure Arc.

Примечание.

Вы не можете исключить экземпляры SQL Server, использующие выставление счетов по мере использования.

Сохранение обновленной конфигурации

После проверки типа лицензии, параметра ESU и любого экземпляра, чтобы исключить, нажмите кнопку "Сохранить ", чтобы применить изменения.

Внимание

Неограниченное преимущество виртуализации для программного обеспечения SQL Server или подписки SQL Server ESU не поддерживается в инфраструктуре от перечисленных поставщиков. Если вы используете SQL Server на виртуальной машине указанного поставщика и выберите этот параметр, ваше намерение будет игнорироваться, и вы будете взимать плату за виртуальные ядра виртуальной машины.

Подписка на расширенные обновления системы безопасности в масштабе с помощью Политика Azure

Подписку ESU можно активировать на нескольких компьютерах с поддержкой Azure Arc с помощью определения Политика Azure с именем Подписки на допустимые экземпляры SQL Server с поддержкой Arc в расширенные обновления системы безопасности.

При создании назначения этого определения политики в выбранной области он включает ESUs на всех компьютерах с поддержкой Azure Arc, имеющих расширение Azure для SQL Server. Если у любого из этих компьютеров есть квалифицированный экземпляр SQL Server, подписка ESU активируется немедленно.

Чтобы активировать эту политику, выполните следующие действия.

  1. В портал Azure перейдите к Политика Azure и выберите "Определения".

  2. Найдите подходящие экземпляры SQL Server с поддержкой Arc для подписки на расширенные обновления безопасности и щелкните правой кнопкой мыши политику.

  3. Выберите " Назначить политику".

  4. Выберите подписку и при необходимости группу ресурсов в качестве области.

  5. Убедитесь, что для принудительного применения политики задано значение "Включено".

  6. На вкладке "Параметры" задайте значение "Включить расширенные обновления безопасности " значение True.

  7. На вкладке "Исправление":

    1. Выберите "Создать задачу исправления" для применения этой политики к существующим ресурсам. Если этот параметр не выбран, политика применяется только к вновь созданным ресурсам.
    2. Выберите "Создать управляемое удостоверение" и выберите управляемое удостоверение, назначаемое системой (рекомендуется) или управляемое удостоверение, назначаемое пользователем, которое имеет расширение Azure для развертывания и чтения SQL Server.
    3. Выберите расположение удостоверения.
  8. Выберите Review + Create (Просмотреть и создать).

  9. Нажмите кнопку создания.

Запрос конфигурации SQL Server

Azure Resource Graph можно использовать для запроса параметров конфигурации SQL Server в выбранной области. См. следующие примеры.

Получение количества по типу лицензии

В этом примере возвращается количество по типу лицензии:

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| extend licenseType = iff(properties.settings.LicenseType == '', 'Configuration needed', properties.settings.LicenseType)
| summarize count() by tostring(licenseType)

Определение экземпляров, в которых тип лицензии не определен

Этот запрос возвращает список экземпляров, в которых тип лицензии:null

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| where isnull(properties.settings.LicenseType)
| project ['id'], resourceGroup, subscriptionId

Список сведений о конфигурации для каждого экземпляра SQL Server

Этот запрос определяет множество сведений о каждом экземпляре, включая тип лицензии, параметр ESU и включенные функции:

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
| extend machineIdHasSQLServerDiscovered = id
| project name, machineIdHasSQLServerDiscovered, resourceGroup, subscriptionId
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend machineIdHasSQLServerExtensionInstalled = iff(id contains "/extensions/WindowsAgent.SqlServer" or id contains "/extensions/LinuxAgent.SqlServer", substring(id, 0, indexof(id, "/extensions/")), "")
    | project Extension_State = properties.provisioningState,
    License_Type = properties.settings.LicenseType,
    ESU = iff(notnull(properties.settings.enableExtendedSecurityUpdates), iff(properties.settings.enableExtendedSecurityUpdates == true,"enabled","disabled"), ""),
    Extension_Version = properties.instanceView.typeHandlerVersion,
    Excluded_instances = properties.ExcludedSqlInstances,
    Purview = iff(notnull(properties.settings.ExternalPolicyBasedAuthorization),"enabled",""),
    Entra = iff(notnull(properties.settings.AzureAD),"enabled",""),
    BPA = iff(notnull(properties.settings.AssessmentSettings),"enabled",""),
    machineIdHasSQLServerExtensionInstalled)on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isnotempty(machineIdHasSQLServerExtensionInstalled)
| project-away machineIdHasSQLServerDiscovered, machineIdHasSQLServerExtensionInstalled

Вывод списка серверов с поддержкой Azure Arc с экземплярами SQL Server

Этот запрос определяет серверы с поддержкой Azure Arc с экземплярами SQL Server, обнаруженными на них:

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
//| summarize count()

Этот запрос возвращает серверы с поддержкой Azure Arc, имеющие экземпляры SQL Server, но расширение SQL Server Azure Arc не установлено. Этот запрос применяется только к серверам Windows.

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
| project machineIdHasSQLServerDiscovered = id
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | where properties.type == "WindowsAgent.SqlServer"
    | project machineIdHasSQLServerExtensionInstalled = substring(id, 0, indexof(id, "/extensions/WindowsAgent.SqlServer")))
on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isempty(machineIdHasSQLServerExtensionInstalled)
| project machineIdHasSQLServerDiscoveredButNotTheExtension = machineIdHasSQLServerDiscovered

Дополнительные примеры запросов Azure Resource Graph см . в примерах запросов Начального графа ресурсов.

Вывод списка экземпляров SQL Server с поддержкой Azure Arc, подписанных на ESUs

В следующем примере показано, как просмотреть все подходящие экземпляры SQL Server 2012 (11.x) или SQL Server 2014 (12.x) и состояние подписки ESU:

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances'
| extend Version = properties.version
| extend Edition = properties.edition
| extend containerId = tolower(tostring (properties.containerResourceId))
| where Version in ("2012", "2014")
| where Edition in ("Enterprise", "Standard")
| where isnotempty(containerId)
| project containerId, SQL_instance = name, Version, Edition
| join kind=inner (
    resources
    | where type == "microsoft.hybridcompute/machines"
    | extend machineId = tolower(tostring(id))
    | project machineId, Machine_name = name
)
on $left.containerId == $right.machineId
| join kind=inner (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend machineIdHasSQLServerExtensionInstalled = tolower(iff(id contains "/extensions/WindowsAgent.SqlServer" or id contains "/extensions/LinuxAgent.SqlServer", substring(id, 0, indexof(id, "/extensions/")), ""))
    | project machineIdHasSQLServerExtensionInstalled, Extension_State = properties.provisioningState, License_Type = properties.settings.LicenseType, ESU = iff(notnull(properties.settings.enableExtendedSecurityUpdates), iff(properties.settings.enableExtendedSecurityUpdates == true,"enabled","disabled"), ""), Extension_Version = properties.instanceView.typeHandlerVersion
)
on $left.machineId == $right.machineIdHasSQLServerExtensionInstalled
| project-away machineId, containerId, machineIdHasSQLServerExtensionInstalled

Вывод списка серверов с поддержкой Azure Arc, на которых размещен оплачиваемый экземпляр SQL Server

Этот запрос определяет компьютеры (виртуальные или физические), на которых размещаются экземпляры SQL Server, и которые оплачиваются или требуют лицензии на программное обеспечение SQL Server. Он содержит сведения о конфигурации SQL Server, включая тип лицензии, параметр ESU, размер виртуальных ядер или p-cores и другие соответствующие параметры.

resources
| where type =~ 'Microsoft.HybridCompute/machines'
| extend status = tostring(properties.status)
| where status =~ 'Connected'
| extend machineID = tolower(id)
| extend VMbyManufacturer = toboolean(iff(properties.detectedProperties.manufacturer in (
        "VMware",
        "QEMU",
        "Amazon EC2",
        "OpenStack",
        "Hetzner",
        "Mission Critical Cloud",
        "DigitalOcean",
        "UpCloud",
        "oVirt",
        "Alibaba",
        "KubeVirt",
        "Parallels",
        "XEN"
    ), 1, 0))
| extend VMbyModel = toboolean(iff(properties.detectedProperties.model in (
        "OpenStack",
        "Droplet",
        "oVirt",
        "Hypervisor",
        "Virtual",
        "BHYVE",
        "KVM"
    ), 1, 0))
| extend GoogleVM = toboolean(iff((properties.detectedProperties.manufacturer =~ "Google") and (properties.detectedProperties.model =~ "Google Compute Engine"), 1, 0))
| extend NutanixVM = toboolean(iff((properties.detectedProperties.manufacturer =~ "Nutanix") and (properties.detectedProperties.model =~ "AHV"), 1, 0))
| extend MicrosoftVM = toboolean(iff((properties.detectedProperties.manufacturer =~ "Microsoft Corporation") and (properties.detectedProperties.model =~ "Virtual Machine"), 1, 0))
| extend billableCores = iff(VMbyManufacturer or VMbyModel or GoogleVM or NutanixVM or MicrosoftVM, properties.detectedProperties.logicalCoreCount, properties.detectedProperties.coreCount)
| join kind = leftouter // Join the extension
        (
        resources
        | where type =~ 'Microsoft.HybridCompute/machines/extensions'
        | where name == 'WindowsAgent.SqlServer' or name == 'LinuxAgent.SqlServer'
        | extend extMachineID = substring(id, 0, indexof(id, '/extensions'))
        | extend extensionId = id
        )
        on $left.id == $right.extMachineID
        | join kind = inner       // Join SQL Server instances
            (
            resources
            | where type =~ 'microsoft.azurearcdata/sqlserverinstances'
            | extend sqlVersion = tostring(properties.version)
            | extend sqlEdition = tostring(properties.edition)
            | extend is_Enterprise = toint(iff(sqlEdition == "Enterprise", 1, 0))
            | extend sqlStatus = tostring(properties.status)
            | extend licenseType = tostring(properties.licenseType)
            | where sqlEdition in ('Enterprise', 'Standard')
            | where licenseType !~ 'HADR'
            | where sqlStatus =~ "Connected"
            | extend ArcServer = tolower(tostring(properties.containerResourceId))
            | order by sqlEdition
            )
            on $left.machineID == $right.ArcServer
            | where isnotnull(extensionId)
            | summarize Edition = iff(sum(is_Enterprise) > 0, "Enterprise", "Standard") by machineID
            , name
            , resourceGroup
            , subscriptionId
            , Model = tostring(properties.detectedProperties.model)
            , Manufacturer = tostring(properties.detectedProperties.manufacturer)
            , License_Type = tostring(properties1.settings.LicenseType)
            , OS = tostring(properties.osName)
            , Uses_UV = tostring(properties1.settings.UsePhysicalCoreLicense.IsApplied)
            , Cores = tostring(billableCores)
            , Version = sqlVersion
            | project-away machineID
            | order by Edition, name asc

Управление неограниченным преимуществом виртуализации для SQL Server

Чтобы включить неограниченную виртуализацию, SQL Server, включенная Azure Arc, поддерживает специальный тип ресурсов: SQLServerLicense. Этот ресурс можно использовать для лицензии на множество виртуальных машин с установленными экземплярами SQL Server. Дополнительные сведения о модели лицензирования см. в разделе "Лицензирование экземпляров SQL Server" с неограниченной виртуализацией.

Необходимые компоненты

Роль управления доступом на основе ролей (RBAC) включает следующие разрешения:

  • Microsoft.AzureArcData/SqlLicenses/read
  • Microsoft.AzureArcData/SqlLicenses/write
  • Microsoft.Management/managementGroups/read
  • Microsoft.Resources/subscriptions/read
  • Microsoft.Resources/subscriptions/resourceGroups/read
  • Microsoft.Support/supporttickets/write

Создание лицензии SQL Server

Чтобы создать ресурс лицензии SQL Server, используйте один из следующих методов:

  1. Выберите Azure Arc.
  2. В разделе "Службы данных" выберите лицензии SQL Server.
  3. Нажмите кнопку +Создать.
  4. Выберите лицензию на физическое ядро SQL Server.
  5. Завершите создание мастера.

Обновление ресурса лицензии SQL Server

Чтобы изменить свойство лицензии SQL Server (например, активировать его на более позднюю дату), используйте один из следующих методов:

  1. Выберите Azure Arc.
  2. В разделе "Службы данных" выберите лицензии SQL Server.
  3. Выберите лицензию.
  4. В разделе "Управление" выберите "Настроить".
  5. Внесите изменения и нажмите кнопку "Применить".

Управление ресурсами в области лицензии p-core

Вы можете управлять ресурсами в области конкретной лицензии физического ядра SQL Server, выполнив следующие действия.

  1. Выберите Azure Arc.
  2. В разделе "Службы данных" выберите лицензии SQL Server.
  3. Выберите лицензию.
  4. В разделе "Управление" выберите "Ресурсы" в области.

Если определенные ресурсы не настроены для использования этой лицензии ( столбец " Применить физическое ядро" отображает NO), можно изменить следующее:

  1. Выберите определенные ресурсы в списке.
  2. Выберите "Применить лицензию".
  3. Прочитайте заявление об отказе и нажмите кнопку "Подтвердить".

Вывод списка серверов с поддержкой Azure Arc в области лицензии SQL Server

В этом запросе перечислены все серверы с поддержкой Azure Arc в области лицензии и соответствующие свойства каждого из них:

resources
        | where type =~ 'Microsoft.HybridCompute/machines'
        | where ('${scopeType}'!= 'Subscription' or subscriptionId == '${subscription}')
        | where ('${scopeType}' != 'ResourceGroup' or (resourceGroup == '${resourceGroup.toLowerCase()}' and subscriptionId == '${subscription}'))
        | extend status = tostring(properties.status)
        | where status =~ 'Connected'
        | join kind = leftouter
        (
        resources
        | where type =~ 'Microsoft.HybridCompute/machines/extensions'
        | where name == 'WindowsAgent.SqlServer' or name == 'LinuxAgent.SqlServer'
        | extend machineId = substring(id, 0, indexof(id, '/extensions'))
        | extend extensionId = id
        )
        on $left.id == $right.machineId
        | where isnotnull(extensionId)
        | project id, name, properties.status, resourceGroup, subscriptionId, Model = properties.detectedProperties.model, Manufacturer = properties.detectedProperties.manufacturer, kind, OSE = properties.osName, License_applied = properties1.settings.UsePhysicalCoreLicense.IsApplied
        |order by name asc

Управление неограниченным преимуществом виртуализации для подписки SQL Server ESU

Чтобы включить неограниченное виртуализацию для подписки ESU, SQL Server с поддержкой Azure Arc поддерживает специальный тип ресурса: SQLServerEsuLicense. Этот ресурс можно использовать для включения подписки ESU для набора физических узлов с неограниченным количеством виртуальных машин, выполняющих экземпляры SQL Server вне поддержки. Дополнительные сведения о модели лицензирования см. в статье "Подписка на ESUs SQL Server" с использованием физических ядер с неограниченной виртуализацией.

Необходимые компоненты

Роль RBAC включает следующие разрешения:

  • Microsoft.AzureArcData/SqlLicenses/read
  • Microsoft.AzureArcData/SqlLicenses/write
  • Microsoft.Management/managementGroups/read
  • Microsoft.Resources/subscriptions/read
  • Microsoft.Resources/subscriptions/resourceGroups/read
  • Microsoft.Support/supporttickets/write

Создание ресурса лицензии ESU SQL Server

Чтобы создать ресурс лицензии ESU SQL Server, используйте один из следующих методов:

  1. Выберите Azure Arc.
  2. В разделе "Службы данных" выберите лицензии SQL Server ESU.
  3. Нажмите кнопку +Создать.
  4. Завершите создание мастера.

Обновление ресурса лицензии ESU SQL Server

Чтобы изменить свойства лицензии SQL Server ESU (например, завершить подписку), используйте один из следующих методов:

  1. Выберите Azure Arc.
  2. В разделе "Службы данных" выберите лицензии SQL Server ESU.
  3. Выберите лицензию.
  4. В разделе "Управление" выберите "Настроить".
  5. Внесите изменения и нажмите кнопку "Применить".

Управление ресурсами в области лицензии P-core ESU

Вы можете управлять ресурсами в области конкретной лицензии SQL Server ESU, выполнив следующие действия.

  1. Выберите Azure Arc.
  2. В разделе "Службы данных" выберите лицензии SQL Server ESU.
  3. Выберите лицензию.
  4. В разделе "Управление" выберите "Ресурсы" в области.

В этом представлении показаны только подключенные компьютеры в области, где размещен экземпляр SQL Server вне службы, с версией, которая соответствует версии лицензии P-core ESU, которую вы управляете. Если определенные ресурсы не настроены для использования этой лицензии ( примененный к физической основной лицензии столбец отображает NO), можно изменить следующее:

  1. Выберите определенные ресурсы в списке.
  2. Выберите "Подписаться на ESUs", чтобы подписаться, или выберите "Отменить подписку" из ESUs, чтобы отменить подписку.
  3. Прочитайте заявление об отказе и нажмите кнопку "Подтвердить".

Вывод списка серверов с поддержкой Azure Arc в области лицензии SQL Server ESU

В этом запросе перечислены все серверы с поддержкой Azure Arc в области лицензии и соответствующие свойства каждого из них:

resources
        | where type =~ 'Microsoft.HybridCompute/machines'
        | where ('${scopeType}'!= 'Subscription' or subscriptionId == '${subscription}')
        | where ('${scopeType}' != 'ResourceGroup' or (resourceGroup == '${resourceGroup.toLowerCase()}' and subscriptionId == '${subscription}'))
        | extend status = tostring(properties.status)
        | where status =~ 'Connected'
        | join kind = leftouter
        (
        resources
        | where type =~ 'Microsoft.HybridCompute/machines/extensions'
        | where name == 'WindowsAgent.SqlServer' or name == 'LinuxAgent.SqlServer'
        | extend machineId = substring(id, 0, indexof(id, '/extensions'))
        | extend extensionId = id
        )
        on $left.id == $right.machineId
        | where isnotnull(extensionId)
        | project id, name, properties.status, resourceGroup, subscriptionId, Model = properties.detectedProperties.model, Manufacturer = properties.detectedProperties.manufacturer, kind, OSE = properties.osName, License_applied = properties1.settings.UseEsuPhysicalCoreLicense.IsApplied
        |order by name asc