Ücretli SQL lisanslarına geçişi ölçekli ölçekte otomatikleştirin

Şunlar için geçerlidir:Azure SQL VeritabanıAzure SQL Yönetilen ÖrnekAzure Sanal Makineleri üzerinde SQL ServerAzure Arc tarafından etkinleştirilen SQL Server

Bu makalede, aşağıdakilerin nasıl yapılacağı açıklanmaktadır:

  • Birden fazla SQL ürününü tek bir PowerShell betiğiyle gözden geçirin ve kullandıkça öde lisanslamasına geçirin.
  • Azure İlkesi ile bir kaynak türü için kullandıkça öde lisanslamasını sürekli uygulayın.

Bu makaledeki otomasyon, Azure Arc özellikli SQL Server, Azure Sanal Makineler'de SQL Server, Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği için geçerlidir. Script ayrıca Azure Data Factory (Azure-SSIS IR) içinde bir Azure-SSIS Integration Runtime işleyebilir.

Lisans sözleşmesini değiştirmek, SQL kaynaklarınız için yapılandırılan lisans türünü değiştirmez. Bu makaledeki iş akışları, Yazılım Güvencesi kapsamındaki SQL lisansları, SQL abonelik lisansları veya Hizmet Sağlayıcı Lisans Sözleşmesi (SPLA) lisansları artık geçerli olmadığında kaynakları kullandıkça öde faturalandırmasına geçirmenize yardımcı olur.

Prerequisites

  • SQL kaynaklarını içeren kiracıya ve aboneliklere erişimi olan bir Azure hesabı.
  • PowerShell 5 veya daha sonrasını Az PowerShell modülü ile kullan.
  • SQL kaynaklarını güncellemek için PowerShell betiğini kullandığınızda Azure CLI
  • Değiştirdiğiniz her abonelikte Katkıda Bulunan rolü. En az ayrıcalıklı alternatifler için, kaynak türüne göre İzinler'i inceleyin.
  • Zamanlanmış mod için, hedef abonelik kapsamında rol atamaları oluşturma izni veya gerekli rollerin Otomasyon hesabının yönetilen kimliğine önceden atanmış olması.
  • Faturalama ayarlarını değiştirme ve hedef kaynakların lisanslama şartlarını doğrulama yetkisi.

Araçları yerel olarak yüklememek için betiği Azure Cloud Shell'te çalıştırın. Cloud Shell, Azure PowerShell ve Azure CLI'yı içerir ve oturumu doğrular. Hesabınızın birden fazla kiracıya ne zaman erişebileceğini belirtin -TenantId .

Bir otomasyon yöntemi seçin

Aralarından seçim yapın:

  • Kaynaklar arası geçişlerin kullandıkça öde lisanslamasına geçirilmesi için PowerShell.
  • Tek bir kaynak türü için sürekli kullandıkça öde uygulamasına yönelik Azure İlkesi

Aşağıdaki tablo her otomasyon yöntemi hakkında detaylar sunmaktadır:

Scenario Önerilen yöntem
Birden fazla SQL kaynak türü genelinde kullandıkça öde değişikliklerini gözden geçirin veya uygulayın manage-payg-transition.ps1
Bir abonelikte veya kiracıda bulunan tüm desteklenen kaynakları kullandıkça öde lisanslamasına geçirin manage-payg-transition.ps1
Yinelenen bir zamanlamada kullandıkça öde geçişi gerçekleştirin manage-payg-transition.ps1 Zamanlanmış modda
Bir kaynak türü için kullandıkça öde lisanslamasını sürekli zorunlu kılma ve sapmayı giderme Kaynağa özgü bir Azure İlkesi örneği
Bir kaynağı manuel olarak değiştirin Ürüne özel lisanslama makalesi

Desteklenen kaynakları ve lisans değerlerini gözden geçirin

Bu makaledeki yordamlar, -TargetLicenseType değerini PAYG olarak ayarlar. Script, bu değeri her kaynak sağlayıcının ihtiyaç duyduğu kullandıkça öde değerine çevirir. Kaynak değerleri, geçişin yerine geçebileceği yaygın lisans yapılandırmalarını gösterir.

Resource Kullandığın kadar öde hedef değeri Ortak kaynak değerleri Senaryo tarafından destekleniyor Azure İlkesi örneği
Azure Arc tarafından etkinleştirilen SQL Server PAYG Paid, LicenseOnly Evet Arc özellikli SQL Server lisans tipi uyumu
Azure Sanal Makineleri Üzerinde SQL Server PAYG AHUB Evet Azure VM’lerinde SQL Server lisans türü uyumluluğu
Azure SQL Veritabanı ve elastik havuzlar LicenseIncluded BasePrice Evet Azure SQL Veritabanı lisans türü uyumluluğu
Azure SQL Yönetilen Örnek ve örnek havuzları LicenseIncluded BasePrice, HybridFailoverRights Evet SQL Yönetilen Örneği lisans türü uyumu
Azure-SSIS IR LicenseIncluded BasePrice Evet Bu makalede ele alınmamıştır

Politika örnekleri, Azure VM'lerde SQL Server için DR gibi ek kaynak değerlerinin üzerine yazabilir. Bir politika atamasını uygulamadan önce seçilen örneği gözden geçirin.

PowerShell betiklerinin nasıl çalıştığını anlamak

PowerShell betikini kullanarak bir kaynak grubundaki tüm kaynakları, abonelikteki tüm kaynakları ve bir veya daha fazla abonelikteki tüm kaynakları bir kiracı içinde değiştirebilirsiniz.

Script kendi içinde kapalıdır ve desteklenen SQL kaynakları üzerinde çalışır. -TargetLicenseType varsayılan PAYG olarak ayarlandığında, bu değer Desteklenen kaynakları ve lisans değerlerini gözden geçirme bölümünde gösterildiği gibi her kaynak türü için gereken kullandıkça öde değerine dönüştürülür. Varsayılan olarak, oluşturulan çalışma klasörü script bittikten sonra da kalır. Çalıştırmadan sonra bunu kaldırmak için -cleanDownloads $true belirtin.

Script, kaynak türüne göre bir özet yazdırır ve her başarısız veya atlanan kaynağın nedenini listeler. Betik, eşleşen kaynakları bulduğunda, ayrıca UpdateError ve ModifiedResources_<timestamp>.csv sütunlarını içeren bir UpdateResult rapor oluşturur.

Aşağıdaki parametreler scriptin kapsamını ve çalıştırılmasını kontrol eder:

Parameter Kabul edilen değer veya temerrüt Purpose
-Target Arc, Azure, veya Both (varsayılan) Azure Arc tarafından etkinleştirilen SQL Server kaynaklarını, Azure SQL kaynaklarını ve Azure-SSIS IR’yi veya her iki grubu da seçer.
-RunMode Single (varsayılan) veya Scheduled Geçişi bir kez çalıştırır veya günlük Azure Otomasyonu runbooklarını ayarlar.
-TargetLicenseType PAYG Bu makaledeki prosedürler için hedef lisans modeli olarak kullandığın kadar öde yöntemini seçer.
-targetSubscription Abonelik Kimliği; Kiracıda varsayılan olarak erişilebilir tüm abonelikler Geçişi tek abonelikle sınırlıyor.
-targetResourceGroup Kaynak grubu adı; varsayılan olarak tüm kaynak grupları Geçişi tek bir kaynak grubuna sınırlar.
-TenantId Kiracı Kimliği; varsayılan olarak geçerli Az PowerShell bağlamı Microsoft Entra kiracını seçer.
-ReportOnly Switch; varsayılan olarak devre dışı bırakılmış Kaynakları değiştirmeden nitelikli raporlar verir.
-WaitForCompletion Switch; varsayılan olarak devre dışı bırakılmış Desteklendiğinde gönderilen değişikliklerin terminal durumuna ulaşmasını bekler.
-UsePcoreLicense No (varsayılan) veya Yes Azure Arc tarafından etkinleştirilen SQL Server için fiziksel çekirdek lisanslamasını kontrol eder.
-AutomationAccResourceGroupName -RunMode Scheduled ile gereklidir Otomasyon hesabı için kaynak grubunu seçer.
-AutomationAccountName aaccAzureArcSQLLicenseType varsayılan olarak Otomasyon hesabı adını ayarlar.
-Location -RunMode Scheduled ile gereklidir Otomasyon hesabı ve kaynak grubu için Azure bölgesini seçer.
-cleanDownloads $false (varsayılan) veya $true Script bittikten sonra oluşturulan çalışma klasörü kaldırılır.

Varsayılan yürütme davranışı kaynak türüne bağlıdır:

Resource Varsayılan davranış -WaitForCompletion ile
Azure SQL Veritabanı, Azure SQL Yönetilen Örnek Asenkron bir talep gönderir ve raporlar verir RequestSubmitted Bekleme ve raporlar Updated
Azure Arc tarafından etkinleştirilen SQL Server Asenkron bir uzantı güncellemesi ve rapor gönderir RequestSubmitted Uzantıyı sorgular ve Failed, Succeeded veya TimedOut raporlar
Azure Sanal Makineleri Üzerinde SQL Server Doğrudan bir Azure Resource Manager isteği gönderir ve raporlar RequestSubmitted Az SQL VM güncellemesini çalıştırıyor, bekliyor ve rapor veriyorUpdated
Azure-SSIS IR Bekleme ve raporlar Updated Aynı davranış

Kullandıkça öde geçişini önizleyin

manage-payg-transition.ps1 betiği, Azure Arc tarafından etkinleştirilen Azure SQL ve SQL Server kaynakları için tek bir giriş noktası sağlar.

PowerShell betiğiyle, taranacak tek bir abonelik belirtebilirsiniz. Abonelik belirtmezseniz, script rolünüzün erişebildiği tüm abonelikleri tarar.

  1. Komut dosyasını indirin.

    $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. Kaynakları içeren kiracıya giriş yapın:

     Connect-AzAccount -TenantId "<tenant-id>"
    
  3. Tek bir abonelik için yalnızca okunabilir önizleme çalıştırın. -TenantId öğesini, zaten bir Azure bağlamınız olsa bile, betiğin yanlış kiracıyı kullanmaması için belirtin:

    .\manage-payg-transition.ps1 `
        -Target Both `
        -TenantId "<tenant-id>" `
        -targetSubscription "<subscription-id>" `
        -TargetLicenseType PAYG `
        -ReportOnly
    
  4. Eğer betik eşleşen kaynaklar bulursa, en yeni ModifiedResources_<timestamp>.csv raporu açın. Listelenen her kaynağın değişmesi gerektiğini doğrulayın:

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

Halihazırda kullandıkça öde lisanslamasını kullanan kaynaklar raporda görünmez. Eğer script eşleşen kaynak bulamazsa, CSV dosyası oluşturmaz. Kapsamı azaltmak için -targetResourceGroupbelirtin . Azure SQL kaynaklarını ve Azure-SSIS IR'yi işlemek için -Target öğesini Azure olarak ayarlayın. Bunu, yalnızca Azure Arc tarafından etkinleştirilen SQL Server kaynaklarını işlemek için Arc olarak ayarlayın.

PowerShell ile tek seferlik bir kullandıkça öde geçişi gerçekleştirin

Hedef kapsamı doğruladıktan ve önizleme raporundaki tüm kaynakları onayladıktan sonra kullandıkça öde modeline geçişi yalnızca bu işlemden sonra gerçekleştirin.

  1. -ReportOnly öğesini kaldırın ve kaynak sağlayıcısının bunları desteklediği durumlarda doğrulanmış sonuçları beklemek için -WaitForCompletion öğesini ekleyin:

    .\manage-payg-transition.ps1 `
        -Target Both `
        -TenantId "<tenant-id>" `
        -targetSubscription "<subscription-id>" `
        -TargetLicenseType PAYG `
        -WaitForCompletion
    
  2. Oluşturulan CSV raporunu inceleyin. Failed veya TimedOut olan her sonucu araştırın ve gönderilen her değişiklik için kaynak durumunu doğrulayın.

PAYG değeri, hedef lisans modelini kullandıkça öde olarak ayarlar.

-WaitForCompletion öğesini çıkarırsanız, kabul edilen değişikliklerin çoğunun UpdateResult değeri RequestSubmitted olur. Bu sonuç, Azure'un talebi kabul ettiği anlamına gelir; lisans türünü değiştirme işleminin tamamlandığı anlamına gelmez. Azure-SSIS IR her zaman bekler çünkü güncelleme komutu asenkron çalıştırmayı desteklemiyor.

PowerShell ile yinelenen kullandıkça öde geçişlerini zamanlayın

Zamanlanmış mod, her seçilen hedef için bir Azure Otomasyonu çalışma defteri oluşturur veya günceller, her çalışma kitabını günlük bir programa bağlar ve hemen tek seferlik bir işi başlatır. Bir Otomasyon hesabı için kaynak grubu ve Azure bölgesini belirtin. Varsayılan Otomasyon hesap adı aaccAzureArcSQLLicenseType. Zamanlanmış mod, Otomasyon hesabının yönetilen kimliğini kullanır.

  1. Azure SQL ve SQL Server için geçişi Azure Arc resources tarafından etkinleştirilen bir abonelikte planlayın:

    .\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. Otomasyon hesabında, çalışma kitaplarının yayımlandığını, günlük bir programa bağlı olduğunu ve seçilen parametrelerle işe başlayabildiğini doğrulayın.

Azure hedefi SQL Yönetilen Örneği havuzlarını içeriyorsa, Otomasyon hesabının yönetilen kimliğine Contributor rolünü veya Microsoft.Sql/instancePools/read ve Microsoft.Sql/instancePools/write izinlerini içeren özel bir rol atayın. Zamanlanmış kurulum, bu izinleri veren yerleşik bir rol atamıyor.

Azure İlkesi ile pay-as-you-go lisanslamayı zorunlu kıl

Kullandıkça öde lisanslamasını sürekli olarak zorunlu kılmak ve yapılandırma sapmalarını gidermek için kaynağa özgü bir Azure İlkesi örneği kullanın. Her örnek bir politika tanımı, bir dağıtım betiği ve bir iyileştirme betiği içerir.

Warning

Bir politika ataması, kapsamındaki her eşleşen kaynağı değiştirebilir. Dar kapsamlı bir test aboneliğiyle başlayın ve sadece değiştirmeyi planladığınız mevcut lisans türlerini seçin.

Aşağıdaki tablo, her kaynak için politika paketi ve dağıtım betiklerini birbirine bağlar:

Resource Politika paketi Dağıtım betiği
Azure Arc tarafından etkinleştirilen SQL Server Arc özellikli SQL Server lisans tipi uyumu deployment.ps1
Azure Sanal Makineleri Üzerinde SQL Server Azure VM’lerinde SQL Server lisans türü uyumluluğu deployment.ps1
Azure SQL Yönetilen Varlık SQL Yönetilen Örneği lisans türü uyumu deployment.ps1
Azure SQL Veritabanı Azure SQL Veritabanı lisans türü uyumluluğu deployment.ps1

Seçilen kaynak türü için değerleri ve rolleri kullanın:

Resource Kullandığın kadar öde hedef değeri Üzerine yazılabilen kaynak değerleri Birincil zorunlu rol Önemli sınırlama
Azure Arc tarafından etkinleştirilen SQL Server PAYG Paid; Portal tanımı ayrıca şunları da destekler LicenseOnly Azure Extension for SQL Server Deployment Görev, tüm eşleşen sunuculara tek bir hedef uygular ve sürüm farkında değildir. Karma mirasları ayrı olarak kapsamlandırın.
Azure Sanal Makineleri Üzerinde SQL Server PAYG AHUB, DR Sanal Makine Katkı Sağlayıcı Hedef, Azure Hibrit Avantajı veya pasif yüksek erişilebilirlik veya felaketten kurtarma (HA/DR) lisans koşullarını karşılamalıdır.
Azure SQL Yönetilen Varlık LicenseIncluded BasePrice, HybridFailoverRights SQL Yönetilen Örneği Contributor HybridFailoverRights, BasePrice öğesini hybridSecondaryUsage olarak ve Passive öğesini licenseType olarak ayarlar.
Azure SQL Veritabanı LicenseIncluded BasePrice SQL DB Katkıda Bulunanı Politika, master ve Basic veritabanlarını hariç tutar. Azure SQL Veritabanı, yalnızca sağlanmış vCore veritabanları için lisans tipi değişikliklerini destekler, bu nedenle diğer veritabanı işlem birimi (DTU) tabanlı ve sunucusuz veritabanlarını atamadan hariç tutabilir veya muaf tutar.

Her ödev ayrıca Okuyucu ve Kaynak Politikası Katkıcısı gerektirir. Dağıtım betikleri, oturum açmış kimliğin rol atamaları oluşturma iznine sahip olması durumunda gerekli rolleri atar. Eksik rolleri denetlemek ve eklemek için -GrantMissingPermissions öğesini düzeltme betiğiyle kullanın.

SQL VM, SQL Yönetilen Örneği ve SQL Database dağıtım betikleri, hedef değerin lisans doğrulaması gerektirdiğinde onay ister. Yalnızca operatörün uygunluğunu önceden onayladığı ve uyum sorumluluğunu kabul ettiği otomatik bir boru hattında kullanılır -SkipLicenseConfirmation .

Arc özellikli SQL Server için, bir PAYG politika ayrıca tekrarlayan faturalama onayını da yapılandırır. Daha sonraki bir atama lisans türünü PAYG olmaktan çıkarırsa, onay uzantıda kalır.

Politika paketleri paylaşılan bir dağıtım akışı kullanır:

  1. Paket policy ve scripts klasörleri README talimatlarını takip ederek indirin.

  2. Devretme kapsamını içeren kiracıya giriş yapın:

    Connect-AzAccount -TenantId "<tenant-id>"
    
  3. İndirilmiş paket klasöründen tanım ve atamayı dağıtın. Kaynak türünüz için önceki tablodaki kullandıkça öde hedef değerini kullanın. Aşağıdaki örnek, ilkeyi abonelik kapsamına atar:

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

    Eğer atlarsanız -SubscriptionId, script yönetim grubu kapsamını kullanır. Dağıtımı çalıştırmadan önce paket varsayılan ayarlarını gözden geçirin.

  4. Politika atamasının sistem tarafından atanan yönetilen bir kimlik ve atama kapsamında gerekli rollere sahip olduğunu doğrulayın.

  5. Mevcut uyumsuz kaynaklar için iyileştirmeye başlayın:

    .\scripts\start-remediation.ps1 `
        -SubscriptionId "<subscription-id>" `
           -TargetLicenseType "<pay-as-you-go-value>" `
        -GrantMissingPermissions
    
  6. Azure İlkesi'de, atamanın uyum sonuçlarını ve düzeltme görevini inceleyin. Sonra düzeltilmiş kaynaklarda lisans türünü onaylayın.

Kullandıkça öde geçişini doğrulayın

CSV raporu, seçilen her kaynak için bir UpdateResult ve bir UpdateError içerir. Yaygın sonuçları şu şekilde yorumlayın:

Result Meaning Sonraki eylem
ReportOnly Script, yalnızca okunma modunda nitelikli bir kaynak belirledi ve değişiklik göndermedi. Geçişi çalıştırmadan önce kaynağın kullandıkça ödemeli lisanslama kullanması gerektiğini doğrulayın.
RequestSubmitted Azure, asenkron bir isteği kabul etti. Kaynak işleminin bitmesini bekleyin, ardından kaynak durumunu doğrulayın.
Updated veya Succeeded Senaryo başarılı bir terminal sonuç gözlemledi. Kaynaktaki lisans türünü onaylayın.
Failed Hizmet güncellemeyi reddetti veya arızalı bir terminal durumu döndürdü. İnceleyin UpdateError, sorunu düzeltin ve önizlemeyi tekrar çalıştırın.
TimedOut Arc uzantısı, oy kullanma limitinden önce terminal bir duruma ulaşmadı. Uzatma durumunu kontrol et. Güncelleme, script beklemeyi bıraktıktan sonra tamamlanabilir.

Azure Arc tarafından etkinleştirilen SQL Server için mevcut lisans tipini ve provisioning durumunu doğrulamak için aşağıdaki Azure Kaynak Grafı sorgusunu çalıştırın:

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
"@

Gönderilen işlemler tamamlandıktan sonra aynı kapsamı -ReportOnly ile yeniden çalıştırın:

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

Senaryo, zaten kullandığınız kadar öde lisansı kullanan kaynakları hariç tutuyor ve bu senaryo kullanılmaz. Tam birleşmiş bir kapsam, güncelleme için kaynak olmadığını bildirir. Geçişin tamamlandığını düşünmeden önce hâlâ ortaya çıkan herhangi bir kaynağı araştırın.

Sınırlamaları ve faturalandırma önlemlerini gözden geçirin

  • Azure VM'lerde SQL Server çalışmalı olmalı. Script, durdurulan veya serbest bırakılan VM'leri atlıyor ve başlatmıyor.
  • Betik, DR lisans türünü kullanan Azure VM'lerindeki SQL Server'ı hariç tutar; böylece pasif bir HA/DR replikası için lisans ayarının üzerine yazmaz.
  • Script, gömülü Arc handler'ının tekrarlayan faturalandırma onayı seçeneğini açıklamıyor. CSP tarafından yönetilen ve yinelenen faturalandırma onayı gerektiren Arc kaynakları için, geçerli olduğunda onayı yapılandıran PAYG ilkesini kullanın .
  • Varsayılan asenkron bir koşu, ani onaydan çok ölçeki tercih eder. Komut dosyasının çıkmadan önce terminal sonuçlarını gözlemlemesi gerektiğinde -WaitForCompletion kullanın.
  • Varsayılan olarak, Azure VM güncellemelerinde SQL Server asenkron Azure Resource Manager request kullanır. Eğer bu istek başarısız olursa, script tekrar 'ye az sql vm updategeri döner, bu da işlemin bitmesini bekler.

Otomasyon hatalarını giderin

Güncellenmemiş kaynakları belirlemek için oluşturulan raporu ve Azure işlem durumunu kullanın.

  • Rapor boşsa, kiracı, abonelik ve kaynak grubunu onaylayın. Kapsam dahilindeki tüm kaynaklar zaten kullandıkça öde lisansını kullanıyorsa, boş bir raporun oluşturulması beklenir.
  • Arc özellikli bir kaynak atlanırsa, Azure Connected Machine aracısının bağlantısını geri yükleyin, SQL Server için Azure uzantısının sağlama durumunun Succeeded olduğunu doğrulayın ve ardından önizlemeyi yeniden çalıştırın.
  • Eğer UpdateResult ise RequestSubmitted, talebi tamamlanmış olarak değerlendirmeyin. Azure işlemi bittikten sonra kaynak durumunu kontrol edin veya önizlemeyi tekrar çalıştırın.
  • Eğer Azure SQL veya Azure VM üzerinde SQL Server işlemi başarısız olursa, Azure CLI'nin kurulduğunu, aynı kiracıya giriş yaptığını ve hedef abonelik için yetkilendirildiğini doğrulayın.
  • Eğer planlı mod başarısız olursa, Otomasyon hesabı yönetilen kimliğinin kaynak örnekte listelenen rollere sahip olduğunu doğrulayın.
  • Eğer politika düzeltmesi PolicyAuthorizationFailed döndürürse, atama kimliğinin atama kapsamında ürüne özgü Okuyucu rolüne ve Kaynak İlkesi Katkıda Bulunanı rolüne sahip olduğunu doğrulayın. Oturum açmış kimlik rol atamaları oluşturabildikten sonra dağıtım betiğini yeniden çalıştırın veya düzeltme betiğini -GrantMissingPermissions ile yeniden çalıştırın.

Tam kaynak için bkz.manage-payg-transition.ps1 Mevcut sınırlamalar ve test sonuçları için testmanage-payg-transition.ps1 planına bakınız.

Kaynak türüne göre izinler

PowerShell script için izinler

Katkıda Bulunan rolü, bu makaledeki script tarafından zorunlu kılılan izinlerin bir üst kümesidir ve en basit seçenektir. En az ayrıcalıklı erişim için, kapsamdaki kaynak türleri için gereken rolleri atayın:

Kaynak türü Rol veya gerekli izinler
Azure Sanal Makineleri Üzerinde SQL Server Sanal Makine Katkı Sağlayıcı
Azure SQL Yönetilen Varlık SQL Yönetilen Örneği Contributor
Azure SQL Veritabanı SQL DB Katkıda Bulunanı
Azure SQL Veritabanı elastik havuzları SQL Server Katkıda Bulunanı
Azure SQL Yönetilen Örnek havuzları Katkıda Bulunan veya Microsoft.Sql/instancePools/read ve Microsoft.Sql/instancePools/write içeren özel bir rol
Azure Arc tarafından etkinleştirilen SQL Server Azure Bağlı Makine Kaynak Yöneticisi
Azure-SSIS IR Data Factory Katkıda Bulunanı
Abonelikleri ve kaynakları okumak ve saymak Okuyucu, başka bir atanmış rol gerekli okuma izinlerini vermedikçe

Azure İlkesi için izinler

deployment.ps1 öğesini çalıştıran kimliğin, seçilen yönetim grubunda ilke tanımları oluşturma ve atama kapsamı içinde ilke atamaları, düzeltme görevleri, yönetilen kimlikler ve rol atamaları oluşturma iznine sahip olması gerekir. Eğer rol atamaları oluşturamıyorsa, düzeltmeye başlamadan önce gerekli rolleri ilke atamasının yönetilen kimliğine atayın ve -SkipManagedIdentityRoleAssignment ile deployment.ps1 komutunu çalıştırın.

Varsayılan olarak, deployment.ps1 politika ataması için sistem tarafından atanan yönetilen bir kimlik oluşturur ve atama kapsamında üç rol verir. Ürüne özgü rol, seçilen politika örneğine bağlıdır:

Politika örneği Ürüne özgü rol
Azure Arc tarafından etkinleştirilen SQL Server Azure Extension for SQL Server Deployment
Azure Sanal Makineleri Üzerinde SQL Server Sanal Makine Katkı Sağlayıcı
Azure SQL Yönetilen Varlık SQL Yönetilen Örneği Contributor
Azure SQL Veritabanı SQL DB Katkıda Bulunanı

Her ilke ataması kimliği, Okuyucu ve Kaynak İlkesi Katkıda Bulunanı rollerini de gerektirir. Dağıtım betiği otomatik rol atamasını yalnızca -SkipManagedIdentityRoleAssignment belirttiğinizde atlar.

Düzeltmeye başlamadan önce, start-remediation.ps1 tüm üç zorunlu rol için politika atama kimliğini kontrol eder. Bir rol eksikse, senaryo durur. Rolleri manuel olarak atayın veya atama kapsamında rol atamaları oluşturabilen bir kimlikle düzeltme betiğini -GrantMissingPermissions yeniden çalıştırın.