Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:Azure SQL Database
Azure SQL Managed Instance
SQL Server on Azure Virtual Machines
SQL Server enabled by Azure Arc
W tym artykule opisano, jak:
- Przejrzyj i przełącz wiele produktów SQL na licencjonowanie w modelu płatności zgodnie z rzeczywistym użyciem za pomocą jednego skryptu programu PowerShell.
- Nieustannie egzekwuj licencjonowanie pay-as-you-go dla jednego typu zasobu za pomocą Azure Policy.
Automatyzacja opisana w tym artykule dotyczy SQL Server włączonego przez Azure Arc, SQL Server on Azure Virtual Machines, Azure SQL Database oraz Azure SQL Managed Instance. Skrypt może również przetwarzać Azure-SSIS Integration Runtime w Azure Data Factory (Azure-SSIS IR).
Zmiana umowy licencyjnej nie zmienia typu licencji skonfigurowanego dla zasobów SQL. Procedury opisane w tym artykule pomagają przenieść zasoby na model rozliczeń pay-as-you-go, gdy licencje SQL z programem Software Assurance, licencje subskrypcyjne SQL lub licencjonowanie w ramach umowy Service Provider License Agreement (SPLA) przestają mieć zastosowanie.
Wymagania wstępne
- Konto Azure z dostępem do tenanta oraz subskrypcje zawierające zasoby SQL.
- PowerShell 5 lub nowszy z modułem PowerShell Az.
- Azure CLI, gdy używasz skryptu PowerShell do aktualizacji zasobów SQL.
- Rola współtwórcy w każdej subskrypcji, którą modyfikujesz. W przypadku alternatyw z najmniejszymi uprawnieniami przejrzyj uprawnienia według typu zasobu.
- W trybie zaplanowanym uprawnienia do tworzenia przypisań ról w zakresie docelowej subskrypcji lub wymagane role wstępnie przypisane do zarządzanej tożsamości konta usługi Automation.
- Uprawnienia do zmiany ustawień rozliczeń i potwierdzania warunków licencjonowania dla docelowych zasobów.
Aby uniknąć instalowania narzędzi lokalnie, uruchom skrypt w Azure Cloud Shell. Cloud Shell zawiera Azure PowerShell oraz Azure CLI i uwierzytelnia sesję. Określ, -TenantId kiedy twoje konto może uzyskać dostęp do więcej niż jednego tenanta.
Wybierz metodę automatyzacji
Wybierz spośród opcji:
- PowerShell do przechodzenia między zasobami w celu przejścia na licencjonowanie pay-as-you-go.
- Azure Policy do ciągłego wymuszania płatności zgodnie z rzeczywistym użyciem dla jednego typu zasobu.
Poniższa tabela zawiera szczegóły dotyczące każdej metody automatyzacji:
| Scenario | Zalecana metoda |
|---|---|
| Przejrzyj lub zastosuj zmiany typu pay-as-you-go na różnych typach zasobów SQL | manage-payg-transition.ps1 |
| Przełącz wszystkie obsługiwane zasoby w ramach subskrypcji lub dzierżawy na licencjonowanie w modelu płatności zgodnie z użyciem | manage-payg-transition.ps1 |
| Zrób przejście na zasadzie pay-as-you-go według cyklicznego harmonogramu |
manage-payg-transition.ps1 w trybie harmonogramu |
| Stale wymuszaj licencjonowanie zgodne z rzeczywistym użyciem dla jednego typu zasobów i koryguj odchylenia | Przykład usługi Azure Policy dotyczący konkretnego zasobu |
| Zmień jeden zasób ręcznie | Artykuł o licencjonowaniu specyficznym dla produktu |
Przegląd wspieranych zasobów i wartości licencji
Procedury opisane w tym artykule ustawiają -TargetLicenseType na PAYG. Skrypt przekształca tę wartość w wartość w modelu płatności zgodnie z użyciem, wymaganą przez poszczególnych dostawców zasobów. Wartości źródłowe pokazują typowe konfiguracje licencyjne, które przejście może zastąpić.
| Zasób | Wartość docelowa pay-as-you-go | Wspólne wartości źródłowe | Wspierane przez scenariusz | Przykład usługi Azure Policy |
|---|---|---|---|---|
| SQL Server obsługiwany przez Azure Arc | PAYG |
Paid, LicenseOnly |
Yes | Zgodność typu licencji SQL Server z obsługą usługi Arc |
| SQL Server na maszynach wirtualnych Azure | PAYG |
AHUB |
Yes | Zgodność typu licencji programu SQL Server na maszynach wirtualnych platformy Azure |
| Azure SQL Database i elastic pools | LicenseIncluded |
BasePrice |
Yes | Zgodność typu licencji dla Azure SQL Database |
| Azure SQL Managed Instance i pule wystąpień | LicenseIncluded |
BasePrice, HybridFailoverRights |
Yes | Zgodność z typem licencji SQL Managed Instance |
| Azure-SSIS IR | LicenseIncluded |
BasePrice |
Yes | Nie jest to opisane w tym artykule |
Przykłady polityk mogą nadpisywać dodatkowe wartości źródłowe, na przykład DR dla SQL Server na maszynach wirtualnych Azure. Przejrzyj wybraną próbkę przed wdrożeniem przypisania zasad.
Zrozum, jak działa skrypt PowerShell
Możesz użyć skryptu programu PowerShell do modyfikowania wszystkich zasobów w grupie zasobów, wszystkich zasobów w subskrypcji oraz wszystkich zasobów w co najmniej jednej subskrypcji w obrębie całej dzierżawy.
Skrypt jest samodzielny i działa na obsługiwanych zasobach SQL. Gdy -TargetLicenseType jest ustawiony na wartość domyślną PAYG, przekształca tę wartość w wartość dla modelu płatności zgodnie z rzeczywistym użyciem wymaganą dla każdego typu zasobu, jak pokazano w sekcji Przegląd obsługiwanych zasobów i wartości licencji.
Domyślnie wygenerowany folder roboczy pozostaje po zakończeniu skryptu. Aby usunąć go po uruchomieniu, określ -cleanDownloads $true.
Skrypt wyświetla podsumowanie w podziale na typ zasobu i podaje przyczynę dla każdego zasobu, którego przetwarzanie zakończyło się niepowodzeniem lub zostało pominięte. Gdy skrypt znajdzie pasujące zasoby, tworzy również raport ModifiedResources_<timestamp>.csv z kolumnami UpdateResult i UpdateError.
Zakres i wykonanie skryptu kontrolują następujące parametry:
| Parameter | Akceptowana wartość lub domyślna | Purpose |
|---|---|---|
-Target |
Arc, Azure, lub Both (domyślnie) |
Wybiera zasoby SQL Server z obsługą Azure Arc, zasoby Azure SQL i Azure-SSIS IR lub obie grupy. |
-RunMode |
Single (wartość domyślna) lub Scheduled |
Uruchamia migrację jednorazowo lub konfiguruje codzienne elementy Runbook usługi Azure Automation. |
-TargetLicenseType |
PAYG |
Wybiera model licencji pay-as-you-go jako docelowy model licencji dla procedur opisanych w tym artykule. |
-targetSubscription |
Identyfikator subskrypcji; wszystkie dostępne subskrypcje w dzierżawcy domyślnie | Ogranicza to przejście do jednej subskrypcji. |
-targetResourceGroup |
Nazwa grupy zasobów; wszystkie grupy zasobów domyślnie | Ogranicza przejście do jednej grupy zasobów. |
-TenantId |
Identyfikator dzierżawcy; domyślnie obecny kontekst PowerShell Az | Wybiera dzierżawcę Microsoft Entra. |
-ReportOnly |
Switch; domyślnie wyłączony | Raportuje zasoby spełniające kryteria bez ich modyfikowania. |
-WaitForCompletion |
Przełącznik; domyślnie wyłączony | Czeka, aż przesłane zmiany osiągną stan końcowy, jeśli jest to obsługiwane. |
-UsePcoreLicense |
No (wartość domyślna) lub Yes |
Steruje licencjonowaniem na rdzenie fizyczne programu SQL Server z obsługą Azure Arc. |
-AutomationAccResourceGroupName |
Wymagane przy -RunMode Scheduled |
Wybiera grupę zasobów dla konta Automatyzacja. |
-AutomationAccountName |
aaccAzureArcSQLLicenseType domyślnie |
Ustawia nazwę konta usługi Automation. |
-Location |
Wymagane w przypadku -RunMode Scheduled |
Wybiera region Azure dla konta Automation i grupy zasobów. |
-cleanDownloads |
$false (wartość domyślna) lub $true |
Usuwa wygenerowany folder roboczy po zakończeniu skryptu. |
Domyślne zachowanie wykonania zależy od typu zasobu:
| Zasób | Działanie domyślne | Z -WaitForCompletion |
|---|---|---|
| Azure SQL Database, Azure SQL Managed Instance | Wysyła asynchroniczne żądanie i raportuje RequestSubmitted |
Oczekiwania i raporty Updated |
| SQL Server obsługiwany przez Azure Arc | Przesyła asynchroniczną aktualizację rozszerzenia i raportuje RequestSubmitted |
Odpytuje rozszerzenie i zgłasza Succeeded, Failed lub TimedOut |
| SQL Server na maszynach wirtualnych Azure | Składa bezpośrednie żądanie i raporty do Azure Resource ManagerRequestSubmitted |
Uruchamia aktualizację az sql VM, czeka i raportujeUpdated |
| Azure-SSIS IR | Oczekiwania i raporty Updated |
To samo zachowanie |
Podejrzyj przejście na model płatności za użycie
Skrypt manage-payg-transition.ps1 zapewnia jeden punkt wejścia dla Azure SQL i SQL Server obsługiwanych przez zasoby Azure Arc.
W skrypcie PowerShell możesz określić jedną subskrypcję do skanowania. Jeśli nie określisz subskrypcji, skrypt skanuje wszystkie subskrypcje, do których twoja rola ma dostęp.
Pobierz skrypt:
$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"Zaloguj się do najemcy, który zawiera zasoby:
Connect-AzAccount -TenantId "<tenant-id>"Uruchom podgląd w trybie tylko do odczytu dla jednej subskrypcji. Określ
-TenantIdnawet wtedy, gdy masz już kontekst Azure, aby skrypt nie używał niewłaściwego tenanta:.\manage-payg-transition.ps1 ` -Target Both ` -TenantId "<tenant-id>" ` -targetSubscription "<subscription-id>" ` -TargetLicenseType PAYG ` -ReportOnlyJeśli skrypt znajdzie odpowiednie zasoby, otwórz najnowszy
ModifiedResources_<timestamp>.csvraport. Potwierdź, że każde wymienione źródło powinno się zmienić:$report = Get-ChildItem -Filter "ModifiedResources_*.csv" | Sort-Object LastWriteTime -Descending | Select-Object -First 1 Import-Csv $report.FullName | Format-Table
Zasoby już korzystające z licencjonowania pay-as-you-go nie pojawiają się w raporcie. Jeśli skrypt nie znajdzie pasujących zasobów, nie tworzy pliku CSV. Aby zmniejszyć zakres, określmy -targetResourceGroup. Ustaw -Target na Azure, aby przetwarzać zasoby usługi Azure SQL i Azure-SSIS IR. Ustaw wartość Arc, aby przetwarzać tylko zasoby SQL Server z obsługą Azure Arc.
Przeprowadź jednorazową transformację pay-as-you-go z PowerShell
Uruchom przejście na model pay-as-you-go dopiero po potwierdzeniu zakresu docelowego i zatwierdzeniu wszystkich zasobów w raporcie podglądu.
Usuń
-ReportOnly, i dodaj-WaitForCompletion, aby poczekać na potwierdzone wyniki, gdy dostawca zasobów je wspiera:.\manage-payg-transition.ps1 ` -Target Both ` -TenantId "<tenant-id>" ` -targetSubscription "<subscription-id>" ` -TargetLicenseType PAYG ` -WaitForCompletionPrzejrzyj wygenerowany raport CSV. Zbadaj każdy wynik
FailedlubTimedOuti potwierdź stan zasobu dla każdej przesłanej zmiany.
Wartość PAYG ustawia model licencjonowania docelowego na pay-as-you-go.
Jeśli pominiesz -WaitForCompletion, większość zaakceptowanych zmian ma UpdateResult wynoszący RequestSubmitted. Ten wynik oznacza, że Azure zaakceptował żądanie, a nie że typ licencji się zmienił. Azure-SSIS IR zawsze czeka, ponieważ jego polecenie aktualizacji nie obsługuje asynchronicznego wykonywania.
Zaplanuj cykliczne przejścia na model pay-as-you-go za pomocą programu PowerShell
Tryb planowany tworzy lub aktualizuje jeden podręcznik Azure Automation dla każdego wybranego celu, łączy każdy podręcznik z codziennym harmonogramem i natychmiast uruchamia jednorazowe zadanie. Podaj grupę zasobów dla konta Automation oraz region platformy Azure. Domyślna nazwa konta Automation to aaccAzureArcSQLLicenseType. Tryb zaplanowany używa zarządzanej tożsamości konta usługi Automation.
Zaplanuj przejście dla zasobów Azure SQL i SQL Server obsługiwanych przez Azure Arc w jednej subskrypcji:
.\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>"Na koncie usługi Automation potwierdź, że elementy Runbook są opublikowane, połączone z harmonogramem dziennym i mogą uruchomić zadanie z wybranymi parametrami.
Jeśli celem Azure są pule SQL Managed Instance, przypisz zarządzaną tożsamość konta Automation Contributor lub niestandardową rolę z pomocą Microsoft.Sql/instancePools/read i Microsoft.Sql/instancePools/write. Zaplanowana konfiguracja nie przypisuje wbudowanej roli, która przyznaje te uprawnienia.
Wymusz licencjonowanie pay-as-you-go za pomocą Azure Policy
Użyj przykładu usługi Azure Policy dla konkretnego zasobu, aby stale wymuszać stosowanie licencjonowania w modelu pay-as-you-go i korygować odchylenia konfiguracji. Każdy przykład zawiera definicję polityki, skrypt wdrożenia oraz skrypt naprawczy.
Warning
Przypisanie zasad może zmienić każdy odpowiadający zasób w swoim zakresie obowiązywania. Zacznij od wąsko ograniczonej subskrypcji testowej i wybierz tylko aktualne typy licencji, które zamierzasz zastąpić.
Poniższa tabela łączy pakiet polityk i skrypt wdrożeniowy dla każdego zasobu:
| Zasób | Pakiet polityki | Skrypt wdrażania |
|---|---|---|
| SQL Server obsługiwany przez Azure Arc | Zgodność typu licencji SQL Server z obsługą usługi Arc | deployment.ps1 |
| SQL Server na maszynach wirtualnych Azure | Zgodność typu licencji programu SQL Server na maszynach wirtualnych platformy Azure | deployment.ps1 |
| Azure SQL Managed Instance | Zgodność z typem licencji SQL Managed Instance | deployment.ps1 |
| Azure SQL Database | Zgodność typu licencji dla Azure SQL Database | deployment.ps1 |
Użyj wartości i ról dla wybranego typu zasobu:
| Zasób | Wartość docelowa pay-as-you-go | Wartości źródłowe, które można nadpisać | Obowiązkowa rola podstawowa | Ważne ograniczenie |
|---|---|---|---|---|
| SQL Server obsługiwany przez Azure Arc | PAYG |
Paid; Definicja portalu również obsługuje LicenseOnly |
Azure Extension for SQL Server Deployment | To przypisanie stosuje jeden element docelowy do wszystkich pasujących hostów i nie uwzględnia edycji. Traktuj majątki mieszane osobno. |
| SQL Server na maszynach wirtualnych Azure | PAYG |
AHUB, DR |
Współtwórca maszyny wirtualnej | Cel musi spełniać warunki licencjonowania Korzyść użycia hybrydowego platformy Azure lub pasywnej wysokiej dostępności lub odzyskiwania po awarii (HA/DR). |
| Azure SQL Managed Instance | LicenseIncluded |
BasePrice, HybridFailoverRights |
SQL Managed Instance Contributor |
HybridFailoverRights ustawia licenseType na hybridSecondaryUsage oraz BasePrice na Passive. |
| Azure SQL Database | LicenseIncluded |
BasePrice |
Współautor bazy danych SQL | Zasady nie obejmują master i baz danych Basic. Azure SQL Database obsługuje zmiany typu licencji tylko w przypadku baz danych vCore z aprowizacją, więc wyklucz lub zwolnij z przypisania inne bazy danych oparte na jednostkach transakcyjnych bazy danych (DTU) oraz bazy danych bezserwerowe. |
Każde zadanie wymaga również Reader oraz Resource Policy Contributor. Skrypty wdrożeniowe przyznają wymagane role, gdy tożsamość zalogowana ma uprawnienia do tworzenia przypisań ról. Użyj -GrantMissingPermissions ze skryptem naprawczym, aby sprawdzić i dodać brakujące role.
Skrypty wdrożeniowe SQL VM, SQL Managed Instance oraz SQL Database proszą o potwierdzenie, gdy docelowa wartość wymaga potwierdzenia licencyjnego. Używaj -SkipLicenseConfirmation wyłącznie w zautomatyzowanym procesie, w którym operator potwierdził już spełnienie warunków i przyjmuje odpowiedzialność za zgodność z przepisami.
Dla SQL Server z Arc polityka PAYG konfiguruje również zgodę na powtarzające się rozliczenia. Zgoda pozostaje dla rozszerzenia, jeśli późniejsze przypisanie zmieni typ licencji na inny niż PAYG.
Pakiety zasad używają wspólnego procesu wdrażania:
Pobierz foldery
policyiscriptspakietu, postępując zgodnie z instrukcjami w pliku README.Zaloguj się do najemcy, który zawiera zakres przydziału:
Connect-AzAccount -TenantId "<tenant-id>"Z folderu pobranego pakietu wdroż definicję i przypisanie. Użyj docelowej wartości pay-as-you-go dla typu zasobu z poprzedniej tabeli. Poniższy przykład przypisuje zasady na poziomie subskrypcji:
.\scripts\deployment.ps1 ` -SubscriptionId "<subscription-id>" ` -TargetLicenseType "<pay-as-you-go-value>"Jeśli pominiesz
-SubscriptionId, skrypt korzysta z zakresu grupy zarządzającej. Przed uruchomieniem wdrożenia przejrzyj domyślne ustawienia pakietu.Potwierdź, że przypisanie polityki ma systemowo przypisaną tożsamość zarządzaną oraz wymagane role w zakresie przydziału.
Rozpocznij usuwanie istniejących niezgodnych zasobów:
.\scripts\start-remediation.ps1 ` -SubscriptionId "<subscription-id>" ` -TargetLicenseType "<pay-as-you-go-value>" ` -GrantMissingPermissionsW Azure Policy przejrzyj wyniki zgodności przypisania i zadanie naprawcze. Następnie potwierdź typ licencji dla zasobów objętych działaniami naprawczymi.
Zweryfikowaj przejście na pay-as-you-go
Raport CSV zawiera element UpdateResult i element UpdateError dla każdego wybranego zasobu. Interpretuj wspólne wyniki w następujący sposób:
| Result | Meaning | Następna akcja |
|---|---|---|
ReportOnly |
Skrypt zidentyfikował kwalifikujący się zasób w trybie tylko do odczytu i nie zgłosił zmiany. | Potwierdź, że zasób powinien korzystać z licencji pay-as-you-go, zanim przeprowadzisz przejście. |
RequestSubmitted |
Azure zaakceptował asynchroniczne żądanie. | Czekaj, aż operacja zasobu się zakończy, a następnie zweryfikowaj stan zasobu. |
Updated lub Succeeded |
Skrypt zaobserwował udany wynik końcowy. | Potwierdź typ licencji na zasobie. |
Failed |
Usługa odrzuciła aktualizację lub zwróciła stan niepowodzenia terminala. | Przejrzyj UpdateError, popraw problem i uruchom podgląd ponownie. |
TimedOut |
Rozszerzenie Arc nie osiągnęło stanu końcowego przed limitem głosowania. | Sprawdź stan rozszerzenia. Aktualizacja może się zakończyć po tym, jak skrypt przestanie czekać. |
Aby potwierdzić aktualny typ licencji i stan provisioningu dla SQL Server włączony przez Azure Arc, uruchom następujące zapytanie Azure Resource Graph:
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
"@
Po zakończeniu przesłanych operacji ponownie uruchom ten sam zakres za pomocą -ReportOnly:
.\manage-payg-transition.ps1 `
-Target Both `
-TenantId "<tenant-id>" `
-targetSubscription "<subscription-id>" `
-TargetLicenseType PAYG `
-ReportOnly
Skrypt wyklucza zasoby, które już korzystają z licencji pay-as-you-go. W pełni zsynchronizowany zakres nie zgłasza żadnych zasobów do zaktualizowania. Sprawdź każdy zasób, który nadal się wyświetla, zanim uznasz przejście za zakończone.
Przegląd ograniczeń i zabezpieczeń rozliczeń
- SQL Server na Azure VM musi być uruchomiony. Skrypt pomija zatrzymane lub oddzielone maszyny wirtualne i ich nie uruchamia.
- Skrypt wyklucza SQL Server na maszynach wirtualnych Azure korzystających z tego
DRtypu licencji, więc nie nadpisuje ustawień licencji dla pasywnej repliki HA/DR. - Skrypt nie udostępnia opcji zgody na cykliczne rozliczenia w swoim osadzonym module Arc. W przypadku zasobów Arc zarządzanych przez dostawcę CSP, które wymagają zgody na cykliczne rozliczanie, użyj zasad zgodności typu licencji programu SQL Server z usługą Arc-enabled, które konfigurują zgodę podczas ich stosowania
PAYG. - Domyślne uruchomienie asynchroniczne stawia na skalowalność zamiast na natychmiastowe potwierdzenie. Użyj
-WaitForCompletion, gdy potrzebujesz, aby skrypt śledził wyniki w terminalu, zanim zakończy działanie. - Domyślnie aktualizacje SQL Server na Azure VM wykorzystują asynchroniczne żądanie Azure Resource Manager. Jeśli to żądanie się nie powiedzie, skrypt wraca do
az sql vm update, które czeka na zakończenie operacji.
Diagnostyka awarii automatyzacji
Użyj wygenerowanego raportu i statusu operacji Azure, aby zidentyfikować zasoby, które nie zostały zaktualizowane.
- Jeśli raport jest pusty, potwierdź najemcę, subskrypcję i grupę zasobów. Należy oczekiwać pustego raportu, gdy wszystkie zasoby objęte zakresem już korzystają z licencjonowania w modelu płatności zgodnie z rzeczywistym użyciem.
- Jeśli zasób z obsługą usługi Arc zostanie pominięty, przywróć łączność agenta Azure Connected Machine, potwierdź, że stan aprowizacji rozszerzenia Azure dla programu SQL Server jest
Succeeded, a następnie ponownie uruchom podgląd. - Jeśli
UpdateResultma wartośćRequestSubmitted, nie traktuj żądania jako zakończone. Sprawdź stan zasobów lub ponownie uruchom podgląd po zakończeniu operacji Azure. - Jeśli operacja Azure SQL lub SQL Server na Azure VM zawiodła, potwierdź, że Azure CLI jest zainstalowany, zalogowany do tego samego tenanta i autoryzowany dla docelowej subskrypcji.
- Jeśli tryb zaplanowany kończy się niepowodzeniem, potwierdź, że tożsamość zarządzana konta Automation ma role wymienione w przykładzie źródłowym.
- Jeśli korygowanie zasad zwraca
PolicyAuthorizationFailed, potwierdź, że tożsamość przypisania ma role specyficzne dla produktu: Reader oraz Resource Policy Contributor w zakresie przypisania. Uruchom ponownie skrypt wdrożenia lub skrypt naprawczy z parametrem-GrantMissingPermissions, gdy zalogowana tożsamość będzie mogła tworzyć przypisania ról.
Pełne źródło można znaleźć w manage-payg-transition.ps1. Aktualne ograniczenia i wyniki testów znajdziesz w planiemanage-payg-transition.ps1 testów.
Uprawnienia według typu zasobu
Uprawnienia dla skryptu PowerShell
Rola Współtwórca obejmuje szerszy zakres uprawnień niż wymagany przez skrypt opisany w tym artykule i jest najprostszą opcją. Dla dostępu z najmniejszymi uprawnieniami przypisz role wymagane dla typów zasobów w zakresie:
| Typ zasobu | Rola lub wymagane uprawnienia |
|---|---|
| SQL Server na maszynach wirtualnych Azure | Współtwórca maszyny wirtualnej |
| Azure SQL Managed Instance | SQL Managed Instance Contributor |
| Azure SQL Database | Współautor bazy danych SQL |
| Elastyczne pule usługi Azure SQL Database | Współautor programu SQL Server |
| Azure SQL Managed Instance pools |
Współtwórca lub niestandardowa rola z Microsoft.Sql/instancePools/read i Microsoft.Sql/instancePools/write |
| SQL Server obsługiwany przez Azure Arc | Administrator zasobów połączonej maszyny platformy Azure |
| Azure-SSIS IR | Współautor usługi Data Factory |
| Czytanie i wyliczanie subskrypcji oraz zasobów | Czytnik, chyba że inna przypisana rola przyznaje wymagane uprawnienia do odczytu |
Uprawnienia dla usługi Azure Policy
Tożsamość uruchamiająca deployment.ps1 musi mieć uprawnienia do tworzenia definicji zasad w wybranej grupie zarządzania oraz do tworzenia przypisań zasad, zadań korygujących, tożsamości zarządzanych i przypisań ról w zakresie przypisania. Jeśli nie można utworzyć przypisań ról, przed rozpoczęciem korygowania przypisz wymagane role do tożsamości zarządzanej przypisania zasad i uruchom deployment.ps1 za pomocą -SkipManagedIdentityRoleAssignment.
Domyślnie deployment.ps1 tworzy tożsamość zarządzaną przypisaną przez system dla przypisania zasad i przyznaje trzy role w zakresie przypisania. Rola specyficzna dla produktu zależy od wybranego przykładu polisy:
| Przykład polityki | Rola specyficzna dla produktu |
|---|---|
| SQL Server obsługiwany przez Azure Arc | Azure Extension for SQL Server Deployment |
| SQL Server na maszynach wirtualnych Azure | Współtwórca maszyny wirtualnej |
| Azure SQL Managed Instance | SQL Managed Instance Contributor |
| Azure SQL Database | Współautor bazy danych SQL |
Każda tożsamość przypisania zasad wymaga także ról Reader i Resource Policy Contributor. Skrypt wdrożeniowy pomija automatyczne przypisanie ról tylko wtedy, gdy określisz -SkipManagedIdentityRoleAssignment.
Przed rozpoczęciem remediacji element start-remediation.ps1 weryfikuje tożsamość przypisania zasad dla wszystkich trzech wymaganych ról. Jeśli brakuje roli, scenariusz się zatrzymuje. Przypisz role ręcznie lub ponownie uruchom skrypt korygujący przy użyciu tożsamości -GrantMissingPermissions, która może tworzyć przypisania ról w zakresie przypisania.