Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL-Datenbank
Azure SQL Managed Instance
SQL Server auf virtuellen Azure-Computern
SQL 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.
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"Melden Sie sich bei dem Tenant an, der die Ressourcen enthält:
Connect-AzAccount -TenantId "<tenant-id>"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 ` -ReportOnlyWenn das Skript passende Ressourcen findet, öffne den neuesten
ModifiedResources_<timestamp>.csvBericht. 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.
Entfernen Sie
-ReportOnly, und fügen Sie-WaitForCompletionhinzu, 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Überprüfen Sie den generierten CSV-Bericht. Untersuchen Sie jedes
FailedoderTimedOutErgebnis 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.
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>"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:
Laden Sie die Ordner
policyundscriptsdes Pakets herunter, indem Sie den Anweisungen in der README folgen.Melden Sie sich bei dem Mieter an, der den Umfang der Abtretung enthält:
Connect-AzAccount -TenantId "<tenant-id>"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
-SubscriptionIdweglassen, verwendet das Skript den Bereich der Verwaltungsgruppe. Überprüfen Sie die Standardeinstellungen des Pakets, bevor Sie die Bereitstellung durchführen.Bestätigen Sie, dass die Richtlinienzuweisung über eine vom System zugewiesene verwaltete Identität und die erforderlichen Rollen im Zuweisungsbereich verfügt.
Beginnen Sie mit der Sanierung bestehender nicht konformer Ressourcen:
.\scripts\start-remediation.ps1 ` -SubscriptionId "<subscription-id>" ` -TargetLicenseType "<pay-as-you-go-value>" ` -GrantMissingPermissionsÜ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
DRLizenztyp 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 wird
PAYG. - Ein standardmäßiger asynchroner Lauf bevorzugt Skalierung gegenüber sofortiger Bestätigung. Nutze
-WaitForCompletiones, 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
Succeededist, und starten Sie dann die Vorschau erneut. - Wenn
UpdateResultRequestSubmittedist, 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-GrantMissingPermissionserneut 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.