Configurare SQL Server abilitato da Azure Arc

Si applica a:SQL Server

Ogni server con abilitazione Azure Arc include un set di proprietà che si applicano a tutte le istanze di SQL Server installate nel server in oggetto. È possibile configurare tali proprietà dopo l'installazione dell'estensione Azure per SQL Server nel computer. Tuttavia, le proprietà hanno effetto solo se vengono installate una o più istanze di SQL Server. Nel portale di Azure, la Panoramica di SQL Server abilitato da Azure Arc riflette il modo in cui la configurazione di SQL Server influisce su una particolare istanza.

La configurazione di SQL Server del portale Azure consente di eseguire le seguenti attività di gestione:

  1. Configurare il tipo di licenza di SQL Server
  2. Impostare la proprietà Aggiornamenti di Sicurezza estesa
  3. Aggiungere all'elenco Escludi istanze

Prerequisiti

Registrare i provider di risorse

Per registrare i provider di risorse, usare uno dei metodi seguenti:

  1. Selezionare Sottoscrizioni
  2. Scegliere la sottoscrizione in uso
  3. In Impostazioni selezionare Provider di risorse
  4. Cercare Microsoft.AzureArcData e Microsoft.HybridCompute e selezionare Registra

Modificare la configurazione di SQL Server

È possibile usare il portale di Azure, PowerShell o l'interfaccia della riga di comando per modificare tutte o alcune impostazioni di configurazione in un server con abilitazione Arc specifico nello stato desiderato.

Per modificare la configurazione di SQL Server per un ambito più ampio, ad esempio un gruppo di risorse, una sottoscrizione o più sottoscrizioni con un singolo comando, usare lo script di PowerShell modify-license-type.ps1. Viene pubblicato come esempio open source di SQL Server e include le istruzioni divise in passaggi.

Suggerimento

Eseguire lo script da Azure Cloud Shell perché:

  • Include i moduli di Azure PowerShell necessari preinstallati
  • Esegue automaticamente l'autenticazione

Per informazioni dettagliate, vedere Esecuzione dello script con Cloud Shell.

Esistono due modi per configurare l'host di SQL Server nel portale di Azure.

  • Aprire la pagina di panoramica del server con abilitazione Arc e selezionare Configurazione di SQL Server come illustrato.

    Screenshot di SQL Server abilitato da Azure Arc nel portale di Azure.

    O

  • Aprire la pagina di panoramica di SQL Server con abilitazione Arc e selezionare Proprietà. In Configurazione di SQL Server, selezionare l'impostazione da modificare:

    • Tipo di licenza
    • Sottoscrizione ESU
    • Aggiornamenti automatici

    Screenshot della configurazione dell'istanza di SQL Server nel portale di Azure.

Impostare la proprietà Tipo di licenza

Scegliere uno dei tipi di licenza. Per le descrizioni, vedere Tipi di licenza.

Impostare la proprietà Aggiornamenti estesi di sicurezza

Aggiornamenti estesi di sicurezza (ESU) è disponibile per le istanze di SQL Server idonee che usano la licenza con Software assurance o con pagamento in base al consumo come tipo di licenza. Se il tipo di licenza è solo licenza, l'opzione per attivare la sottoscrizione ESU è disabilitata. Vedere Aggiornamenti estesi di sicurezza per SQL Server.

Nota

  • Per attivare una sottoscrizione ESU, il tipo di licenza deve essere impostato su Pagamento in base al consumo o Licenza con Software Assurance. Se è impostato su Solo licenza, le opzioni degli Aggiornamenti estesi di sicurezza verranno disabilitate.
  • Se ESU è abilitato, il valore di Tipo di licenza non può essere modificato in LicenseOnly fino a quando la sottoscrizione ESU non viene annullata.

Applicare una licenza per la memoria centrale fisica

Selezionare questa casella di controllo se si tratta di una macchina virtuale e si sta sfruttando il vantaggio di virtualizzazione illimitato per la gestione delle licenze del software SQL Server o per la sottoscrizione SQL. Se questa opzione è selezionata, p-core avrà la precedenza e i costi software di SQL Server o i costi dell'unità utente associati a questa VM verranno annullati.

Importante

  1. Il vantaggio UV non è supportato per le macchine virtuali in esecuzione nell'infrastruttura dei provider elencati. Se si seleziona questa opzione per una macchina virtuale di questo tipo, questa finalità verrà ignorata e verranno addebitati i costi per i v-core della VM. Per informazioni dettagliate, vedere Provider elencati.
  2. Se si sta configurando una macchina virtuale non soggetta alla restrizione precedente, assicurarsi che il tipo di licenza selezionato corrisponda al piano di fatturazione configurato nella risorsa di licenza p-core.

Aggiungere all'elenco Escludi istanze

È possibile escludere determinate istanze dalle operazioni di onboarding su larga scala guidate dai Criteri di Azure o dai processi di onboarding automatico. Per escludere istanze specifiche da tali operazioni, aggiungere i nomi delle istanze all'elenco Ignora istanze. Per informazioni dettagliate sulle opzioni di onboarding su larga scala, vedere Opzioni di distribuzione alternative per SQL Server abilitato da Azure Arc.

Attenzione

Le istanze di SQL Server che usano il pagamento in base al consumo non possono essere escluse.

Salvare la configurazione aggiornata

Dopo aver verificato il tipo di licenza, l'impostazione ESU ed eventuali istanze da escludere, selezionare Salva per applicare le modifiche.

Inviare query alla configurazione di SQL Server

È possibile usare Azure Resource Graph per eseguire query sulle impostazioni di configurazione di SQL Server all'interno di un ambito selezionato. Vedere gli esempi seguenti.

Conteggio per tipo di licenza

Questo esempio restituisce il conteggio in base al tipo di licenza.

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)

Identificare le istanze in cui il tipo di licenza è indefinito

Questa query restituisce un elenco di istanze in cui il tipo di licenza è 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

Elencare i dettagli di configurazione per ogni istanza di SQL Server

Questa query identifica molti dettagli su ciascuna istanza, tra cui il tipo di licenza, l'impostazione ESU e le funzionalità abilitate.

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

Elencare i server con abilitazione Arc che presentano istanze di SQL Server

Questa query identifica i server con abilitazione Azure Arc su cui sono state individuate istanze di SQL Server.

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

Questa query restituisce i server con abilitazione Azure Arc che presentano istanze di SQL Server, ma in cui l'estensione Arc SQL Server non è installata. Questa query si applica solo ai server 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

Per altri esempi di query di Azure Resource Graph, vedere Query di avvio di Resource Graph.

Gestire la virtualizzazione illimitata

Per abilitare la virtualizzazione illimitata, SQL Server abilitato da Azure Arc supporta il tipo di risorsa speciale SQLServerLicense. Questa risorsa consente di concedere in licenza molte macchine virtuali con le istanze di SQL Server installate. Per informazioni dettagliate sul modello di licenza, vedere Licenze di istanze di SQL Server con virtualizzazione illimitata.

Prerequisiti

Il ruolo Controllo degli accessi in base al ruolo include le autorizzazioni seguenti:

  • 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

Creare una licenza di SQL Server

Per creare la risorsa di licenza di SQL Server, usare uno dei metodi seguenti:

  1. Selezionare Azure Arc
  2. In Servizi dati selezionare Licenze di SQL Server
  3. Fai clic su Crea.
  4. Selezionare Licenza della memoria centrale fisica di SQL Server
  5. Completare la creazione guidata

Modificare le proprietà delle licenze di SQL Server

Per modificare la proprietà della licenza di SQL Server, ad esempio per attivarla in un secondo momento, usare uno dei metodi seguenti:

  1. Selezionare Azure Arc
  2. In Servizi dati selezionare Licenze di SQL Server
  3. Fare clic sulla licenza in questione
  4. Selezionare Configura in Gestione
  5. Apportare le modifiche e fare clic su Applica

Gestire le risorse nell'ambito

È possibile gestire le risorse nell'ambito di una licenza della memoria centrale fisica di SQL Server specifica attenendosi alla procedura seguente:

  1. Selezionare Azure Arc
  2. In Servizi dati selezionare Licenze di SQL Server
  3. Fare clic sulla licenza in questione
  4. Selezionare Risorse nell'ambito in Gestione

Se le risorse specifiche non sono configurate per l'uso di questa licenza (la colonna Applica licenza per la memoria centrale fisica visualizza "NO"), è possibile modificare questa opzione:

  1. Selezionare la risorsa specifica nell'elenco.
  2. Fare clic sulla scheda Applica licenza.
  3. Leggere la nota legare e fare clic su Conferma.

Elencare i server abilitati per Arc nell'ambito della licenza di SQL Server

Questa query elenca tutti i server abilitati per Azure Arc nell'ambito della licenza e le proprietà pertinenti di ognuno di essi.

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