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. API je dodáváno s pravidlovou sadou obsahující pravidla nejlepší praxe navržená týmem SQL Server. Tato sada pravidel je rozšířena s vydáním nových verzí, ale zároveň je API navrženo 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 hodnocení v celé řadě oblastí, ale nezabývá se podrobněji zabezpečením. 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 specifikaci názvu a verze sady pravidel. Když použijete vlastní pravidla, snadno poznáte, která doporučení z jakého souboru pravidel pocházejí.

Sada odeslaných pravidel společnosti 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ím pravidlovém souboru jsou kontroly pouze pro dva druhy objektů: Server a Database (kromě nich) API podporuje ještě dva další typy: 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á. Pravidla Microsoft jsou navržena tak, aby fungovala pro většinu prostředí. Nicméně není možné mít jednu sadu pravidel, která by fungovala pro každé 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í pravidla vydaná Microsoft jsou k dispozici v repozitáři vzorků. 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. Například můžete mít svůj JSON soubor, který deaktivuje konkrétní pravidla z Microsoft pravidlové sady, a další JSON soubor od odborníka z oboru, který obsahuje pravidla, která považujete za užitečná pro vaše prostředí, následovaný dalším JSON souborem, který změní některé prahové hodnoty v tom JSON souboru.

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é.