Sdílet prostřednictvím


API pro hodnocení SQL

platí pro:SQL Serverazure SQL Managed Instance

Rozhraní SQL Assessment API poskytuje mechanismus pro vyhodnocení konfigurace SQL Serveru pro osvědčené postupy. Rozhraní API se dodává se sadou pravidel obsahující pravidla osvědčených postupů navržená týmem SQL Serveru. Tato sada pravidel je rozšířená o vydání nových verzí, ale současně je rozhraní API sestavené tak, aby poskytovalo vysoce přizpůsobitelné a rozšiřitelné řešení. Uživatelé můžou vyladit výchozí pravidla a vytvořit si vlastní pravidla.

Rozhraní SQL Assessment API je užitečné, když chcete zajistit, aby konfigurace SQL Serveru byla v souladu s doporučenými osvědčenými postupy. Po počátečním posouzení je možné stabilitu konfigurace sledovat pravidelně naplánovanými posouzeními.

Rozhraní API se dá použít k vyhodnocení:

Poznámka:

Rozhraní SQL Assessment API poskytuje posouzení v různých oblastech, ale nezabíjeje se hlouběji do zabezpečení. Pomocí posouzení ohrožení zabezpečení pro SQL Server můžete proaktivně zlepšit zabezpečení databáze.

Pravidla

Pravidla (někdy označovaná jako kontroly) se definují ve formátovaných souborech JSON. Formát sady pravidel vyžaduje zadání názvu sady pravidel a verze. Když používáte vlastní sady pravidel, můžete snadno zjistit, která doporučení z jaké sady pravidel pocházejí.

Sada pravidel odeslaných společností Microsoft je k dispozici na GitHubu. Můžete zobrazit celou sadu pravidel v úložišti ukázek .

Rutiny SQL Assessment a přidružená rozšíření

Přímé použití rozhraní API

Rozhraní SQL Assessment API je k dispozici a dá se použít prostřednictvím spravovaného kódu jako součást některé z těchto komponent:

Než začnete používat samotné rozhraní SQL Assessment API, nezapomeňte nainstalovat některou z těchto možností:

SMO Framework je doplněn rozšířením rozhraní SQL Assessment API, které poskytuje následující metody:

  • GetAssessmentItems: Vrátí dostupné kontroly pro konkrétní objekt SQL (IEnumerable<...>)
  • GetAssessmentResults: Synchronně vyhodnocuje hodnocení a vrací výsledky a chyby, pokud nějaké (IEnumerable<...>)
  • GetAssessmentResultsList: Asynchronně vyhodnocuje hodnocení a vrací výsledky a chyby, pokud existuje (Task<...>)

Použití rozhraní API přes PowerShell

Pokud chcete vyvolat rozhraní SQL Assessment API prostřednictvím PowerShellu, musíte nainstalovat modul SQL Server PowerShell. Modul SqlServer poskytuje dvě rutiny, které pracují s rozhraním SQL Assessment API:

  • Get-SqlAssessmentItem: Poskytuje seznam dostupných kontrol posouzení pro objekt SQL Serveru.
  • Invoke-SqlAssessment: Poskytuje výsledky posouzení.

Začínáme používat rutiny SQL Assessment

Posouzení se provádí u vybraného objektu SQL Serveru. Ve výchozí sadě pravidel existují pouze kontroly dvou typů objektů: Server a Database (kromě nich rozhraní API podporuje dva další druhy: Filegroup a AvailabilityGroup). Pokud chcete posoudit instanci SQL Serveru a všechny její databáze, měli byste pro každý objekt spustit cmdlety SQL Assessment zvlášť. Nebo můžete předat objekty pro posouzení rutinám SQL Assessment v proměnné nebo potrubí.

SqlServer a RegisteredServer objekty jsou zaměnitelné, takže můžete předat jakýkoli z nich příkazu cmdlets SQL Assessment.

Začněte tím, že si projdete následující příklady.

  1. Získejte seznam dostupných kontrol pro místní výchozí instanci, abyste se seznámili s kontrolami. V tomto příkladu předáváme výstup rutiny Get-SqlInstance do rutiny Get-SqlAssessmentItem, abychom jí předali objekt instance.

    Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  2. Získejte seznam dostupných kontrol pro všechny databáze instance. Tady používáme rutinu Get-Item a cestu implementovanou pomocí zprostředkovatele Windows PowerShellu pro SQL Server, abychom získali seznam databází, a potom ho přenášíme do rutiny Get-SqlDatabase.

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

    Stejnou akci můžete také provést pomocí rutiny Get-SqlDatabase.

    Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  3. Vyvolání posouzení instance a uložení výsledků do tabulky SQL Serveru. V tomto příkladu směrujeme výstup rutiny Get-SqlInstance do rutiny Invoke-SqlAssessment, jejichž výsledky jsou předány rutině Write-SqlTableData. Cmdlet Invoke-Assessment je v tomto příkladu spuštěn s parametrem -FlattenOutput. Tento parametr způsobí, že výstup bude vhodný pro cmdlet Write-SqlTableData. Druhá vyvolá chybu, pokud parametr vynecháte.

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

    Teď vyvoláme posouzení pro všechny databáze instance a přidáme výsledky do stejné tabulky.

    Get-SqlDatabase -ServerInstance 'localhost' |
    Invoke-SqlAssessment -FlattenOutput |
    Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
    
  4. Postupujte podle popisů a odkazů v tabulce a seznamte se s doporučeními.

  5. Upravte pravidla na základě vašich požadavků na prostředí a organizaci (viz níže).

  6. Naplánujte úkol nebo práci, která bude spouštět hodnocení pravidelně nebo na vyžádání, aby se změřil pokrok.

Přizpůsobení pravidel

Pravidla jsou navržená tak, aby byla přizpůsobitelná a rozšiřitelná. Sada pravidel Microsoftu je navržená tak, aby fungovala pro většinu prostředí. Není však možné mít jednu sadu pravidel, která funguje pro každé jedno prostředí. Uživatelé můžou psát vlastní soubory JSON a přizpůsobovat stávající pravidla nebo přidávat nové. Příklady přizpůsobení a kompletní sady pravidel vydaných Microsoftem jsou k dispozici v úložišti ukázek. Další podrobnosti o tom, jak spouštět rutiny SQL Assessment s vlastními soubory JSON, najdete v této cmdletu Get-Help.

Možnosti dostupné s funkcí přizpůsobení pravidla

Povolení nebo zakázání určitých pravidel nebo skupin pravidel (pomocí značek)

Konkrétní pravidla můžete umlčet, když se pro vaše prostředí nepoužijí, nebo dokud se nedokončí naplánovaná práce, která problém opraví.

Změna parametrů prahové hodnoty

Konkrétní pravidla mají prahové hodnoty, které se porovnávají s aktuální hodnotou metriky, aby bylo možné zjistit problém. Pokud se výchozí prahové hodnoty nevejdou, můžete je změnit.

Přidání dalších pravidel psaných vámi nebo třetími stranami

Sady pravidel můžete kombinovat přidáním jednoho nebo více souborů JSON jako parametrů do volání rozhraní SQL Assessment API. Vaše organizace může tyto soubory napsat nebo je získat od třetí strany. Můžete mít například soubor JSON, který zakáže konkrétní pravidla ze sady pravidel Microsoftu, a další soubor JSON odborníkem v oboru, který obsahuje pravidla, která jsou užitečná pro vaše prostředí, následovaný jiným souborem JSON, který změní určité prahové hodnoty v daném souboru JSON.

Důležité

Žádáme vás, abyste nepoužívali sady pravidel, které pocházejí z nedůvěryhodných zdrojů, dokud je důkladně nekontrolujete, abyste se ujistili, že jsou bezpečné.