Automatisieren Sie den Übergang zu Pay-as-you-go-SQL-Lizenzen in großem Umfang

Gilt für:Azure SQL-DatenbankAzure SQL Managed InstanceSQL Server auf virtuellen Azure-ComputernSQL Server mit Azure Arc-Unterstützung

In diesem Artikel wird beschrieben, wie Sie Folgendes tun:

  • Überprüfen und übertragen Sie mehrere SQL-Produkte auf Pay-as-you-go-Lizenzen mit einem einzigen PowerShell-Skript.
  • Setzen Sie die Pay-as-you-go-Lizenz kontinuierlich für einen Ressourcentyp mit Azure Policy durch.

Die in diesem Artikel beschriebene Automatisierung bezieht sich auf SQL Server, der von Azure Arc aktiviert wird, SQL Server auf virtuellen Azure-Computern, Azure SQL-Datenbank und Azure SQL Managed Instance. Das Skript kann auch eine Azure-SSIS Integration Runtime in Azure Data Factory verarbeiten (Azure-SSIS IR).

Eine Änderung einer Lizenzvereinbarung ändert nicht den Lizenztyp, der für deine SQL-Ressourcen konfiguriert ist. Die in diesem Artikel beschriebenen Arbeitsabläufe helfen Ihnen, Ressourcen auf Pay-as-you-go-Abrechnung umzustellen, nachdem SQL-Lizenzen mit Software Assurance, SQL-Abonnementlizenzen oder Service Provider License Agreement (SPLA)-Lizenzen nicht mehr anwendbar sind.

Voraussetzungen

  • Ein Azure-Konto mit Zugriff auf den Tenant und Abonnements, die die SQL-Ressourcen enthalten.
  • PowerShell 5 oder später mit dem Az PowerShell Module.
  • Die Azure CLI, wenn du das PowerShell-Skript verwendest, um SQL-Ressourcen zu aktualisieren.
  • Die Rolle des Mitwirkenden in jedem Abonnement, das du modifizierst. Für Least-Privileg-Alternativen überprüfen Sie die Berechtigungen nach Ressourcentyp.
  • Im geplanten Modus sind entweder Berechtigungen zum Erstellen von Rollenzuweisungen im Gültigkeitsbereich des Zielabonnements erforderlich, oder die erforderlichen Rollen müssen der verwalteten Identität des Automation-Kontos bereits zugewiesen sein.
  • Die Befugnis, Abrechnungseinstellungen zu ändern und die Lizenzbedingungen für die Zielressourcen zu bestätigen.

Um eine lokale Installation der Tools zu vermeiden, führe das Skript in Azure Cloud Shell aus. Cloud Shell enthält Azure PowerShell und die Azure CLI und authentifiziert die Sitzung. Gib an -TenantId , wann dein Konto auf mehr als einen Mieter zugreifen kann.

Wählen Sie eine Automatisierungsmethode

Sie haben die Wahl zwischen:

  • PowerShell für ressourcenübergreifende Übergänge zu Pay-as-you-go-Lizenzen.
  • Azure Policy zur kontinuierlichen Erzwingung von Pay-as-you-go für einen Ressourcentyp.

Die folgende Tabelle enthält Details zu jeder Automatisierungsmethode:

Scenario Empfohlene Methode
Überprüfe oder wende Pay-as-you-go-Änderungen über mehrere SQL-Ressourcentypen hinweg an oder implementiere sie manage-payg-transition.ps1
Stellen Sie alle unterstützten Ressourcen in einem Abonnement oder Mandanten auf Pay-as-you-go-Lizenzierung um manage-payg-transition.ps1
Führen Sie einen Pay-as-you-go-Übergang nach einem wiederkehrenden Zeitplan durch manage-payg-transition.ps1 Im planmäßigen Modus
Durchsetzen Sie kontinuierlich Pay-as-you-go-Lizenzen für einen Ressourcentyp und beheben Sie Drift Ein ressourcenspezifisches Beispiel für Azure Policy
Ändern Sie eine Ressource manuell Der produktspezifische Lizenzartikel

Überprüfen Sie unterstützte Ressourcen und Lizenzwerte

Die Verfahren in diesem Artikel legen -TargetLicenseType auf PAYG fest. Das Skript übersetzt diesen Wert in den Pay-as-you-go-Wert, den jeder Ressourcenanbieter benötigt. Die Quellwerte zeigen gemeinsame Lizenzkonfigurationen, die der Übergang ersetzen kann.

Resource Pay-as-you-go-Zielwert Gemeinsame Quellwerte Unterstützt durch das Skript Azure Policy-Beispiel
SQL Server durch Azure Arc aktiviert PAYG Paid, LicenseOnly Ja Arc-befähigte SQL Server-Lizenztyp-Konformität
SQL Server auf Azure-VMs PAYG AHUB Ja Konformität des SQL Server-Lizenztyps auf Azure VMs
Azure SQL-Datenbank und elastische Pools LicenseIncluded BasePrice Ja Konformität des Lizenztyps für Azure SQL-Datenbank
Azure SQL Managed Instance und Instance Pools LicenseIncluded BasePrice, HybridFailoverRights Ja Konformität des SQL Managed Instance-Lizenztyps
Azure-SSIS IR LicenseIncluded BasePrice Ja In diesem Artikel nicht behandelt

Die Richtlinienbeispiele können zusätzliche Quellwerte überschreiben, wie zum Beispiel DR für SQL Server auf Azure-VMs. Überprüfen Sie das ausgewählte Beispiel, bevor Sie eine Richtlinienzuweisung bereitstellen.

Verstehe, wie das PowerShell-Skript funktioniert

Sie können das PowerShell-Skript verwenden, um alle Ressourcen innerhalb einer Ressourcengruppe, alle Ressourcen innerhalb eines Abonnements und alle Ressourcen in einem oder mehreren Abonnements innerhalb eines gesamten Mandanten zu ändern.

Das Skript ist in sich geschlossen und funktioniert über die unterstützten SQL-Ressourcen hinweg. Wenn -TargetLicenseType auf den Standard PAYGgesetzt ist, übersetzt er diesen Wert in den Pay-as-you-go-Wert, der von jedem Ressourcentyp benötigt wird, wie in Review unterstützte Ressourcen und Lizenzwerte gezeigt. Standardmäßig bleibt der generierte Arbeitsordner erhalten, nachdem das Skript abgeschlossen ist. Um es nach einem Durchlauf zu entfernen, spezifiziere -cleanDownloads $true.

Das Skript druckt eine Zusammenfassung nach Ressourcentyp aus und listet die Ursache für jede fehlgeschlagene oder übersprungene Ressource auf. Wenn das Skript passende Ressourcen findet, erstellt es auch einen ModifiedResources_<timestamp>.csv Bericht mit den Spalten UpdateResult und UpdateError.

Die folgenden Parameter steuern den Umfang und die Ausführung des Skripts:

Parameter Akzeptierter Wert oder Zahlungsausfall Purpose
-Target Arc, Azure, oder Both (Standard) Wählt für Azure Arc aktivierte SQL Server-Ressourcen, Azure SQL-Ressourcen und Azure-SSIS IR oder beide Gruppen aus.
-RunMode Single (Standard) oder Scheduled Führt die Transition einmal aus oder konfiguriert täglich Azure Automation-Runbooks.
-TargetLicenseType PAYG Wählt Pay-as-you-go als Ziel-Lizenzmodell für die in diesem Artikel genannten Verfahren aus.
-targetSubscription Abonnement-ID; standardmäßig alle im Tenant verfügbaren Abonnements Begrenzt den Übergang auf ein Abonnement.
-targetResourceGroup Name der Ressourcengruppe; alle Ressourcengruppen standardmäßig Begrenzt den Übergang auf eine Ressourcengruppe.
-TenantId Mandanten-ID; standardmäßig der aktuelle Az PowerShell-Kontext Wählt den Microsoft Entra-Tenant aus.
-ReportOnly Switch; standardmäßig deaktiviert Meldet qualifizierte Ressourcen, ohne sie zu ändern.
-WaitForCompletion Switch; standardmäßig deaktiviert Wartet darauf, dass eingereichte Änderungen einen terminalen Zustand erreichen, wenn sie unterstützt werden.
-UsePcoreLicense No (Standard) oder Yes Kontrolliert die Lizenzierung für physische Kernen für SQL Server, ermöglicht durch Azure Arc.
-AutomationAccResourceGroupName Erforderlich bei -RunMode Scheduled Wählt die Ressourcengruppe für das Automatisierungskonto aus.
-AutomationAccountName aaccAzureArcSQLLicenseType standardmäßig Legt den Namen des Automation-Kontos fest.
-Location Erforderlich bei -RunMode Scheduled Wählt die Azure-Region für das Automatisierungskonto und die Ressourcengruppe aus.
-cleanDownloads $false (Standard) oder $true Entfernt den generierten Arbeitsordner, nachdem das Skript fertig ist.

Das Standardausführungsverhalten hängt vom Ressourcentyp ab:

Resource Standardverhalten Mit -WaitForCompletion
Azure SQL-Datenbank und Azure SQL Managed Instance Sendet eine asynchrone Anforderung und meldet RequestSubmitted Wartezeiten und Berichte Updated
SQL Server durch Azure Arc aktiviert Reicht ein asynchrones Erweiterungsupdate ein und berichtet RequestSubmitted Fragt die Erweiterung ab und gibt Succeeded, Failed oder TimedOut zurück
SQL Server auf Azure-VMs Reicht eine direkte Azure Resource Manager-Anfrage und Berichte einRequestSubmitted Führt az sql vm update aus, wartet und meldet Updated
Azure-SSIS IR Wartezeiten und Berichte Updated Dasselbe Verhalten

Vorschau der Umstellung auf nutzungsbasierte Bezahlung

Das Skript manage-payg-transition.ps1 bietet einen Einstiegspunkt für Azure SQL und SQL Server, der durch Azure Arc-Ressourcen aktiviert wird.

Mit dem PowerShell-Skript kannst du ein einzelnes Abonnement zum Scannen festlegen. Wenn du kein Abonnement angibst, scannt das Skript alle Abonnements, auf die deine Rolle zugreifen kann.

  1. Laden Sie das Skript herunter:

    $scriptUri = "https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/manage/manage-payg-transition/manage-payg-transition.ps1"
    Invoke-WebRequest -Uri $scriptUri -OutFile ".\manage-payg-transition.ps1"
    
  2. Melden Sie sich bei dem Tenant an, der die Ressourcen enthält:

     Connect-AzAccount -TenantId "<tenant-id>"
    
  3. Führe eine schreibgeschützte Vorschau für ein einzelnes Abonnement durch. Geben Sie an-TenantId, selbst wenn Sie bereits einen Azure-Kontext haben, damit das Skript nicht den falschen Tenant verwendet:

    .\manage-payg-transition.ps1 `
        -Target Both `
        -TenantId "<tenant-id>" `
        -targetSubscription "<subscription-id>" `
        -TargetLicenseType PAYG `
        -ReportOnly
    
  4. Wenn das Skript passende Ressourcen findet, öffne den neuesten ModifiedResources_<timestamp>.csv Bericht. Bestätigen Sie, dass sich jede aufgeführte Ressource ändern sollte:

    $report = Get-ChildItem -Filter "ModifiedResources_*.csv" |
        Sort-Object LastWriteTime -Descending |
        Select-Object -First 1
    
    Import-Csv $report.FullName | Format-Table
    

Ressourcen, die bereits Pay-as-you-go-Lizenzen verwenden, erscheinen nicht im Bericht. Wenn das Skript keine passenden Ressourcen findet, erstellt es keine CSV-Datei. Um den Umfang zu reduzieren, geben Sie -targetResourceGroup an. Legen Sie -Target auf Azure fest, um Azure SQL-Ressourcen und Azure-SSIS-IR zu verarbeiten. Stellen Sie den Wert auf Arc, um nur die durch Azure Arc aktivierten SQL Server-Ressourcen zu verarbeiten.

Führen Sie einen einmaligen Pay-as-you-go-Übergang mit PowerShell durch

Führen Sie den Pay-as-you-go-Übergang erst durch, nachdem Sie den Zielbereich bestätigt und jede Ressource im Vorschaubericht genehmigt haben.

  1. Entfernen Sie -ReportOnly, und fügen Sie -WaitForCompletion hinzu, um auf bestätigte Ergebnisse zu warten, wenn der Ressourcenanbieter diese unterstützt:

    .\manage-payg-transition.ps1 `
        -Target Both `
        -TenantId "<tenant-id>" `
        -targetSubscription "<subscription-id>" `
        -TargetLicenseType PAYG `
        -WaitForCompletion
    
  2. Überprüfen Sie den generierten CSV-Bericht. Untersuchen Sie jedes Failed oder TimedOut Ergebnis und bestätigen Sie den Ressourcenstatus für jede eingereichte Änderung.

Der Wert PAYG legt die nutzungsbasierte Bezahlung als Ziel-Lizenzmodell fest.

Wenn Sie -WaitForCompletion weglassen, haben die meisten akzeptierten Änderungen ein UpdateResult von RequestSubmitted. Dieses Ergebnis bedeutet, dass Azure die Anfrage akzeptiert hat, nicht dass sich der Lizenztyp vollständig geändert hat. Azure-SSIS IR wartet immer, weil sein Update-Befehl keine asynchrone Ausführung unterstützt.

Planen Sie wiederkehrende Pay-as-you-go-Übergänge mit PowerShell

Der geplante Modus erstellt oder aktualisiert für jedes ausgewählte Ziel ein Azure Automation-Runbook, verknüpft jedes Runbook mit einem Tagesplan und startet sofort einen einmaligen Job. Stellen Sie eine Automation-Account-Ressourcengruppe und eine Azure-Region bereit. Der Standardname des Automation-Kontos ist aaccAzureArcSQLLicenseType. Der Zeitplanmodus verwendet die verwaltete Identität des Automation-Kontos.

  1. Planen Sie den Übergang für Azure SQL und SQL Server, ermöglicht durch Azure Arc-Ressourcen, in einem Abonnement:

    .\manage-payg-transition.ps1 `
        -Target Both `
        -RunMode Scheduled `
        -TenantId "<tenant-id>" `
        -targetSubscription "<subscription-id>" `
        -TargetLicenseType PAYG `
        -AutomationAccResourceGroupName "<automation-resource-group>" `
        -AutomationAccountName "<automation-account>" `
        -Location "<azure-region>"
    
  2. Vergewissern Sie sich im Automatisierungskonto, dass die Runbooks veröffentlicht, mit einem täglichen Zeitplan verknüpft sind und mit den ausgewählten Parametern einen Job starten können.

Wenn das Azure-Ziel SQL Managed Instance Pools enthält, weisen Sie dem Automation-Konto den Managed Identity Contributor oder eine benutzerdefinierte Rolle mit Microsoft.Sql/instancePools/read und Microsoft.Sql/instancePools/writezu. Die geplante Konfiguration weist keine integrierte Rolle zu, die diese Berechtigungen gewährt.

Nutzungsbasierte Lizenzierung mit Azure Policy erzwingen

Verwenden Sie ein ressourcenspezifisches Azure Policy-Beispiel, um Pay-as-you-go-Lizenzen kontinuierlich durchzusetzen und Konfigurationsabweichungen zu beheben. Jede Probe enthält eine Richtliniendefinition, ein Deployment-Skript und ein Remediation-Skript.

Warning

Eine Richtlinienzuweisung kann jede passende Ressource in ihrem Anwendungsbereich ändern. Beginnen Sie mit einem eng begrenzten Testabonnement und wählen Sie nur die aktuellen Lizenztypen aus, die Sie ersetzen möchten.

Die folgende Tabelle verknüpft das Policy-Paket und das Deployment-Skript für jede Ressource:

Resource Politikpaket Bereitstellungsskript
SQL Server durch Azure Arc aktiviert Arc-befähigte SQL Server-Lizenztyp-Konformität deployment.ps1
SQL Server auf Azure-VMs Konformität des SQL Server-Lizenztyps auf Azure VMs deployment.ps1
Verwaltete Azure SQL-Instanz Konformität des SQL Managed Instance-Lizenztyps deployment.ps1
Azure SQL-Datenbank Konformität des Lizenztyps für Azure SQL-Datenbank deployment.ps1

Verwenden Sie die Werte und Rollen für den ausgewählten Ressourcentyp:

Resource Pay-as-you-go-Zielwert Quellwerte, die überschrieben werden können Primäre Pflichtrolle Wichtige Limitierung
SQL Server durch Azure Arc aktiviert PAYG Paid; Die Portal-Definition unterstützt ebenfalls LicenseOnly Azure Extension for SQL Server Deployment Die Zuweisung weist allen passenden Hosts ein einziges Ziel zu und berücksichtigt keine Editionen. Gemischte Bestände separat behandeln.
SQL Server auf Azure-VMs PAYG AHUB, DR Mitwirkender an virtuellen Computern Das Ziel muss die Lizenzbedingungen für Azure-Hybridvorteil oder für passive Hochverfügbarkeit bzw. Notfallwiederherstellung (HA/DR) erfüllen.
Verwaltete Azure SQL-Instanz LicenseIncluded BasePrice, HybridFailoverRights SQL Managed Instance Contributor HybridFailoverRights setzt licenseType auf BasePrice und hybridSecondaryUsage auf Passive.
Azure SQL-Datenbank LicenseIncluded BasePrice Mitwirkender von SQL DB Die Richtlinie schließt master sowie Basic-Datenbanken aus. Azure SQL-Datenbank unterstützt Lizenztypänderungen nur für bereitgestellte vCore-Datenbanken, daher schließen Sie andere Datenbanken auf Basis der Datenbanktransaktionseinheit (DTU) und serverlosen Datenbanken von der Zuweisung aus oder nehmen sie aus.

Jede Aufgabe benötigt außerdem Reader und Resource Policy Contributor. Die Deployment-Skripte gewähren die erforderlichen Rollen, wenn die angemeldete Identität die Berechtigung hat, Rollenzuweisungen zu erstellen. Verwenden Sie das Remediationsskript mit -GrantMissingPermissions, um fehlende Rollen zu prüfen und hinzuzufügen.

Die SQL-VM-, SQL Managed Instance- und SQL Database-Deployment-Skripte fordern eine Bestätigung an, wenn der Zielwert eine Lizenzbestätigung erfordert. Verwenden Sie -SkipLicenseConfirmation nur in einer automatisierten Pipeline, in der der Verantwortliche die Zulässigkeit bereits bestätigt hat und die Verantwortung für die Einhaltung übernimmt.

Für Arc-fähigen SQL Server konfiguriert eine PAYG Richtlinie auch die Zustimmung zur wiederkehrenden Abrechnung. Die Einwilligung bleibt für die Erweiterung bestehen, falls eine spätere Zuweisung den Lizenztyp von PAYG in einen anderen Typ ändert.

Die Richtlinienpakete verwenden einen gemeinsamen Bereitstellungsablauf:

  1. Laden Sie die Ordner policy und scripts des Pakets herunter, indem Sie den Anweisungen in der README folgen.

  2. Melden Sie sich bei dem Mieter an, der den Umfang der Abtretung enthält:

    Connect-AzAccount -TenantId "<tenant-id>"
    
  3. Stellen Sie aus dem Ordner des heruntergeladenen Pakets die Definition und die Zuweisung bereit. Verwenden Sie den Pay-as-you-go-Zielwert für Ihren Ressourcentyp aus der vorherigen Tabelle. Das folgende Beispiel weist die Richtlinie auf Abonnementebene zu:

    .\scripts\deployment.ps1 `
        -SubscriptionId "<subscription-id>" `
        -TargetLicenseType "<pay-as-you-go-value>"
    

    Wenn Sie -SubscriptionId weglassen, verwendet das Skript den Bereich der Verwaltungsgruppe. Überprüfen Sie die Standardeinstellungen des Pakets, bevor Sie die Bereitstellung durchführen.

  4. Bestätigen Sie, dass die Richtlinienzuweisung über eine vom System zugewiesene verwaltete Identität und die erforderlichen Rollen im Zuweisungsbereich verfügt.

  5. Beginnen Sie mit der Sanierung bestehender nicht konformer Ressourcen:

    .\scripts\start-remediation.ps1 `
        -SubscriptionId "<subscription-id>" `
           -TargetLicenseType "<pay-as-you-go-value>" `
        -GrantMissingPermissions
    
  6. Überprüfen Sie in Azure Policy die Konformitätsergebnisse und die Behebungsaufgabe der Zuweisung. Dann bestätigen Sie den Lizenztyp bei den sanierten Ressourcen.

Validiere den Pay-as-you-go-Übergang

Der CSV-Bericht enthält für jede ausgewählte Ressource ein UpdateResult und ein UpdateError. Interpretieren Sie gängige Ergebnisse wie folgt:

Result Bedeutung Nächste Aktion
ReportOnly Das Skript identifizierte eine geeignete Ressource im Nur-Lese-Modus und übermittelte keine Änderung. Bestätigen Sie, dass die Ressource eine Pay-as-you-go-Lizenz verwenden sollte, bevor Sie den Übergang durchführen.
RequestSubmitted Azure akzeptierte eine asynchrone Anfrage. Warte, bis die Ressourcenoperation abgeschlossen ist, und validiere dann den Ressourcenzustand.
Updated oder Succeeded Das Skript beobachtete ein erfolgreiches Endergebnis. Bestätigen Sie den Lizenztyp auf der Ressource.
Failed Der Dienst lehnte das Update ab oder gab einen fehlgeschlagenen Terminalzustand zurück. Überprüfen Sie UpdateError, korrigieren Sie das Problem und führen Sie die Vorschau erneut aus.
TimedOut Die Arc-Erweiterung erreichte keinen Endzustand, bevor das Abfragelimit erreicht wurde. Status der Erweiterung prüfen. Das Update könnte abgeschlossen werden, nachdem das Skript aufgehört hat zu warten.

Um den aktuellen Lizenztyp und den Bereitstellungszustand für SQL Server, der durch Azure Arc aktiviert wird, zu bestätigen, führen Sie folgende Azure Resource Graph-Abfrage aus:

Search-AzGraph -Query @"
resources
| where type =~ 'microsoft.hybridcompute/machines/extensions'
| where properties.type in~ ('WindowsAgent.SqlServer', 'LinuxAgent.SqlServer')
| project name = split(id, '/')[8],
          licenseType = properties.settings.LicenseType,
          state = properties.provisioningState
"@

Sobald die übermittelten Operationen abgeschlossen sind, führen Sie denselben Bereich mit -ReportOnly erneut aus:

.\manage-payg-transition.ps1 `
    -Target Both `
    -TenantId "<tenant-id>" `
    -targetSubscription "<subscription-id>" `
    -TargetLicenseType PAYG `
    -ReportOnly

Das Skript schließt Ressourcen aus, die bereits Pay-as-you-go-Lizenzen verwenden. Ein vollständig konvergierter Umfang meldet keine Ressourcen zum Aktualisieren. Untersuche jede Ressource, die noch angezeigt wird, bevor du den Übergang als abgeschlossen betrachtest.

Überprüfen Sie Einschränkungen und Abrechnungsschutzmaßnahmen

  • SQL Server auf Azure-VMs muss laufen. Das Skript überspringt gestoppte oder deallokierte VMs und startet sie nicht.
  • Das Skript schließt SQL Server bei Azure-VMs aus, die den DR Lizenztyp verwenden, sodass die Lizenzeinstellung für eine passive HA/DR-Replik nicht überschrieben wird.
  • Das Skript stellt die Option für wiederkehrende Abrechnungseinwilligung seines eingebetteten Arc-Handlers nicht offen. Für von CSP verwaltete Arc-Ressourcen, die eine wiederkehrende Abrechnungsgenehmigung erfordern, verwenden Sie die Arc-fähige SQL Server-Lizenztyp-Compliance-Richtlinie, die die Zustimmung konfiguriert, wenn sie angewendet wirdPAYG.
  • Ein standardmäßiger asynchroner Lauf bevorzugt Skalierung gegenüber sofortiger Bestätigung. Nutze -WaitForCompletion es, wenn du das Skript brauchst, um die Terminalergebnisse zu beobachten, bevor es endet.
  • Standardmäßig verwenden SQL Server auf Azure VM-Updates eine asynchrone Azure Resource Manager-Anfrage. Wenn diese Anfrage fehlschlägt, fällt das Skript auf az sql vm update, das darauf wartet, dass die Operation abgeschlossen ist.

Automatisierungsfehler beheben

Verwenden Sie den generierten Bericht und den Azure-Operationsstatus, um Ressourcen zu identifizieren, die nicht aktualisiert wurden.

  • Wenn der Bericht leer ist, bestätigen Sie den Mieter, das Abonnement und die Ressourcengruppe. Ein leerer Bericht ist zu erwarten, wenn alle In-Scope-Ressourcen bereits Pay-as-you-go-Lizenzen verwenden.
  • Wenn eine für Arc aktivierte Ressource übersprungen wird, stellen Sie die Konnektivität für den Azure Connected Machine-Agent wieder her, bestätigen Sie, dass der Bereitstellungszustand für die Azure-Erweiterung für SQL Server Succeeded ist, und starten Sie dann die Vorschau erneut.
  • Wenn UpdateResultRequestSubmitted ist, betrachte die Anfrage nicht als vollständig. Überprüfen Sie den Ressourcenstatus oder führen Sie die Vorschau erneut aus, nachdem die Azure-Operation abgeschlossen ist.
  • Wenn ein Azure SQL- oder SQL Server-Betrieb auf einer Azure VM fehlsetzt, bestätigen Sie, dass die Azure CLI installiert, beim selben Tenant angemeldet und für das Zielabonnement autorisiert ist.
  • Wenn der geplante Modus fehlschlägt, bestätigen Sie, dass die verwaltete Identität des Automatisierungskontos die im Quellcode aufgeführten Rollen enthält.
  • Wenn Policy Remediation zurückkehrt PolicyAuthorizationFailed, bestätigen Sie, dass die Assignment-Identität die produktspezifische Rolle, Reader und Resource Policy Contributor im Umfang der Zuweisung hat. Führen Sie das Deployment-Skript erneut aus, oder führen Sie das Remediation-Skript mit -GrantMissingPermissions erneut aus, sobald die angemeldete Identität Rollenzuweisungen erstellen kann.

Für die vollständige Quelle siehe manage-payg-transition.ps1. Für aktuelle Einschränkungen und Testergebnisse siehe den manage-payg-transition.ps1 Testplan.

Berechtigungen nach Ressourcentyp

Berechtigungen für das PowerShell-Skript

Die Rolle Mitwirkender ist eine Übermenge der Berechtigungen, die das Skript in diesem Artikel benötigt, und ist die einfachste Option. Für den Zugriff mit den geringsten Berechtigungen weisen Sie die Rollen zu, die für die Ressourcentypen im Geltungsbereich erforderlich sind:

Ressourcentyp Rolle oder erforderliche Berechtigungen
SQL Server auf Azure-VMs Mitwirkender an virtuellen Computern
Verwaltete Azure SQL-Instanz SQL Managed Instance Contributor
Azure SQL-Datenbank Mitwirkender von SQL DB
Elastische Pools für Azure SQL-Datenbank Mitwirkender von SQL Server
Azure SQL Managed Instance-Pools Mitwirkender oder eine benutzerdefinierte Rolle mit Microsoft.Sql/instancePools/read und Microsoft.Sql/instancePools/write
SQL Server durch Azure Arc aktiviert Ressourcenadministrator für Azure Connected Machine
Azure-SSIS IR Mitwirkender von Data Factory
Lesen und Aufzählung von Abonnements und Ressourcen Leser, es sei denn, eine andere zugewiesene Rolle gewährt die erforderlichen Leseberechtigungen

Berechtigungen für Azure Policy

Die Identität, unter der deployment.ps1 ausgeführt wird, benötigt die Berechtigung, auf der ausgewählten Verwaltungsgruppe Richtliniendefinitionen zu erstellen sowie im Zuweisungsbereich Richtlinienzuweisungen, Wartungsaufgaben, verwaltete Identitäten und Rollenzuweisungen zu erstellen. Wenn keine Rollenzuweisungen erstellt werden können, weise der verwalteten Identität der Richtlinienzuweisung die erforderlichen Rollen zu, bevor du mit der Problembehebung beginnst, und führe -SkipManagedIdentityRoleAssignment mit deployment.ps1 aus.

Standardmäßig erstellt deployment.ps1 eine systemseitig zugewiesene verwaltete Identität für die Richtlinienzuweisung und weist im Umfang der Zuweisung drei Rollen zu. Die produktspezifische Rolle hängt von der ausgewählten Politikprobe ab:

Politikbeispiel Produktspezifische Rolle
SQL Server durch Azure Arc aktiviert Azure Extension for SQL Server Deployment
SQL Server auf Azure-VMs Mitwirkender an virtuellen Computern
Verwaltete Azure SQL-Instanz Mitwirkender für SQL Managed Instance
Azure SQL-Datenbank Mitwirkender von SQL DB

Jede Identität einer Richtlinienzuweisung erfordert außerdem Reader und Resource Policy Contributor. Das Deployment-Skript überspringt die automatische Rollenzuweisung nur, wenn Sie -SkipManagedIdentityRoleAssignment angeben.

Bevor Sie mit der Problembehandlung beginnen, überprüft start-remediation.ps1 die Identität der Richtlinienzuweisung für alle drei erforderlichen Rollen. Wenn eine Rolle fehlt, hört das Drehbuch auf. Weise die Rollen manuell zu, oder führe das Remediation-Skript erneut mit -GrantMissingPermissions aus, und zwar mit einer Identität, die Rollenzuweisungen im Zuweisungsbereich erstellen kann.