Aracılığıyla paylaş


SQL Değerlendirme API'si

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

SQL Değerlendirme API'si, en iyi yöntemler için SQL Server'ınızın yapılandırmasını değerlendirmeye yönelik bir mekanizma sağlar. API, SQL Server ekibi tarafından önerilen en iyi uygulama kurallarını içeren bir kural kümesiyle birlikte sunulur. Bu kural kümesi, yeni sürümlerin yayımlanmasıyla geliştirilmiştir, ancak aynı zamanda API, yüksek oranda özelleştirilebilir ve genişletilebilir bir çözüm sunmak için oluşturulur. Kullanıcılar varsayılan kuralları ayarlayabilir ve kendi kurallarını oluşturabilir.

SQL Server yapılandırmanızın önerilen en iyi yöntemlerle uyumlu olduğundan emin olmak istediğinizde SQL Değerlendirme API'si kullanışlıdır. İlk değerlendirmeden sonra yapılandırma kararlılığı düzenli olarak zamanlanmış değerlendirmelerle izlenebilir.

API şunları değerlendirmek için kullanılabilir:

Uyarı

SQL Değerlendirme API'si çeşitli alanlarda değerlendirme sağlar, ancak güvenliğe derinlemesine girmez. Veritabanı güvenliğinizi proaktif olarak geliştirmek için SQL Server için Güvenlik açığı değerlendirmesini kullanın.

Kurallar

Kurallar (bazen denetimler olarak da adlandırılır) JSON biçimli dosyalarda tanımlanır. Kural kümesi biçimi için bir kural kümesi adı ve sürümü belirtilmesi gerekir. Özel kural kümelerini kullandığınızda, önerilerin hangi kural kümesinden geldiğini kolayca anlayabilirsiniz.

Microsoft'un gönderilen kural kümesi GitHub'da kullanılabilir. tüm kural kümesiniörnekleri deposundagörüntüleyebilirsiniz.

SQL Değerlendirmesi cmdlet'leri ve ilişkili uzantılar

API'yi doğrudan kullanma

SQL Değerlendirme API'sini kullanabilirsiniz ve bu bileşenlerden herhangi birinin parçası olarak yönetilen kod aracılığıyla kullanılabilir:

SQL Değerlendirme API'sini kullanmaya başlamadan önce şunlardan birini yüklediğinizden emin olun:

SMO Framework, aşağıdaki yöntemleri sağlayan SQL Değerlendirme API'sinin uzantısıyla desteklenir:

  • GetAssessmentItems: Belirli bir SQL nesnesi için kullanılabilir denetimleri döndürür (IEnumerable<...>)
  • GetAssessmentResults: Değerlendirmeyi zaman uyumlu olarak değerlendirir ve varsa sonuçları ve hataları döndürür (IEnumerable<...>)
  • GetAssessmentResultsList: Değerlendirmeyi zaman uyumsuz olarak gerçekleştirir ve varsa sonuçları ve hataları döndürür (Task<...>)

API'yi PowerShell aracılığıyla kullanma

SQL Değerlendirme API'sini PowerShell aracılığıyla çağırmak isterseniz SQL Server PowerShell modülünü yüklemeniz gerekir. Modül, SqlServer SQL Değerlendirme API'si ile çalışan iki cmdlet sağlar:

  • Get-SqlAssessmentItem: SQL Server nesnesi için kullanılabilir değerlendirme denetimlerinin listesini sağlar
  • Invoke-SqlAssessment: Değerlendirmenin sonuçlarını sağlar

SQL Değerlendirmesi cmdlet'lerini kullanmaya başlama

Seçilen bir SQL Server nesnesine karşı bir değerlendirme gerçekleştirilir. Varsayılan kural kümesinde, yalnızca iki tür nesne için denetimler vardır: Server ve Database (bunlara ek olarak, API iki türü daha destekler: Filegroup ve AvailabilityGroup). Bir SQL Server örneğini ve tüm veritabanlarını değerlendirmek istiyorsanız, her nesne için SQL Değerlendirmesi cmdlet'lerini ayrı ayrı çalıştırmanız gerekir. Alternatif olarak, değerlendirme için nesneleri bir değişkendeki veya işlem hattındaki SQL Değerlendirmesi cmdlet'lerine geçirebilirsiniz.

SqlServer ve RegisteredServer nesneleri birbirinin yerine kullanılabilir, bu nedenle herhangi birini SQL Değerlendirmesi cmdlet'lerine geçirebilirsiniz.

Başlamak için aşağıdaki örnekleri inceleyin.

  1. Denetimler hakkında bilgi edinmek için varsayılan yerel bir örnekte bulunan denetimlerin listesini alın. Bu örnekte, Get-SqlInstance cmdlet'inin çıkışını Get-SqlAssessmentItem cmdlet'ine geçirerek örnek nesnesini aktarıyoruz.

    Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  2. Tüm veri tabanı örnekleri için kullanılabilir denetimlerin listesini alın. Burada, Windows PowerShell SQL Server sağlayıcısıyla uygulanan bir yol ve Get-Item cmdlet'i kullanarak veritabanlarının bir listesini alıp, ardından bunu Get-SqlDatabase cmdlet’ine aktarıyoruz.

    Get-Item SQLSERVER:\SQL\localhost\default | Get-SqlAssessmentItem
    

    Ayrıca, aynı işlemi yapmak için cmdlet'ini kullanabilirsiniz Get-SqlDatabase .

    Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  3. Örnek için değerlendirmeyi çağırın ve sonuçları bir SQL Server tablosuna kaydedin. Bu örnekte, Get-SqlInstance cmdlet'inin çıkışını Invoke-SqlAssessment cmdlet'ine yönlendiriyoruz ve sonuçlar Write-SqlTableData cmdlet'ine yönlendiriliyor. Invoke-Assessment Cmdlet, bu örnekteki -FlattenOutput parametresiyle çalıştırılır. Bu parametre, çıktılarını Write-SqlTableData cmdlet'i için uygun hale getirir. Parametreyi atlarsanız, ikincisi bir hata oluşturur.

    Get-SqlInstance -ServerInstance 'localhost' |
    Invoke-SqlAssessment -FlattenOutput |
    Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
    

    Şimdi örneğin tüm veritabanları için bir değerlendirme çağıralım ve sonuçları aynı tabloya ekleyelim.

    Get-SqlDatabase -ServerInstance 'localhost' |
    Invoke-SqlAssessment -FlattenOutput |
    Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
    
  4. Önerileri daha iyi anlamak için tablodaki açıklamaları ve bağlantıları izleyin.

  5. Ortamınıza ve kuruluş gereksinimlerinize göre kuralları özelleştirin (aşağıya bakın).

  6. Değerlendirmeyi düzenli olarak veya isteğe bağlı olarak çalıştırmak için bir görev veya iş planlayarak ilerlemeyi ölçün.

Kuralları özelleştirme

Kurallar özelleştirilebilir ve genişletilebilir olacak şekilde tasarlanmıştır. Microsoft'un kural kümesi çoğu ortamda çalışacak şekilde tasarlanmıştır. Ancak, her ortam için çalışan bir kural kümesine sahip olmak mümkün değildir. Kullanıcılar kendi JSON dosyalarını yazabilir ve mevcut kuralları özelleştirebilir veya yenilerini ekleyebilir. Özelleştirme örnekleri ve Microsoft tarafından yayımlanan eksiksiz kural kümesi örnekleri örnek deposunda bulunabilir. SQL Değerlendirmesi cmdlet'lerini özel JSON dosyalarıyla çalıştırma hakkında daha fazla bilgi için cmdlet'ini Get-Help kullanın.

Kural özelleştirme özelliğiyle kullanılabilen seçenekler

Belirli kuralları veya kural gruplarını etkinleştirme/devre dışı bırakma (etiketleri kullanarak)

Belirli kurallar ortamınıza uygulanmadığında veya sorunu düzeltmek için zamanlanmış çalışma yapılana kadar sessize alabilirsiniz.

Eşik parametrelerini değiştirme

Belirli kuralların, bir sorunu bulmak için ölçümün geçerli değeriyle karşılaştırılan eşikleri vardır. Varsayılan eşikler uymuyorsa bunları değiştirebilirsiniz.

Siz veya üçüncü taraflar tarafından yazılmış daha fazla kural ekleyin

SQL Değerlendirme API çağrınıza parametre olarak bir veya daha fazla JSON dosyası ekleyerek kural kümelerini birleştirebilirsiniz. Kuruluşunuz bu dosyaları yazabilir veya üçüncü taraflardan edinebilir. Örneğin, Microsoft kural kümesinden belirli kuralları devre dışı getiren JSON dosyanızı ve ortamınız için yararlı bulduğunuz kuralları içeren bir sektör uzmanı tarafından başka bir JSON dosyasını ve ardından bu JSON dosyasındaki bazı eşik değerlerini değiştiren başka bir JSON dosyasını kullanabilirsiniz.

Önemli

Güvenilmeyen kaynaklardan gelen kural kümelerini, güvenli olduklarından emin olmak için ayrıntılı bir şekilde gözden geçirmeden kullanmamanızı öneririz.