Dela via


API för SQL-utvärdering

Gäller för: SQL Server 2012 (11.x) och senare Azure SQL Managed Instance SQL Server på Azure Virtual Machines SQL Server i Linux

SQL Assessment-API:et tillhandahåller en mekanism för att utvärdera konfigurationen av DIN SQL Server för bästa praxis. API:et levereras med en regeluppsättning som innehåller regelverk som föreslås av SQL Server-teamet. Den här regeluppsättningen har förbättrats med lanseringen av nya versioner, men samtidigt är API:et skapat för att ge en mycket anpassningsbar och utökningsbar lösning. Användare kan justera standardreglerna och skapa sina egna.

SQL Assessment API är användbart när du vill se till att SQL Server-konfigurationen är i linje med rekommenderade metodtips. Efter en första utvärdering kan konfigurationsstabilitet spåras av regelbundet schemalagda utvärderingar.

API:et kan användas för att utvärdera:

Anmärkning

SQL-utvärderings-API:et tillhandahåller utvärdering på en mängd olika områden, men det går inte så långt in i säkerheten. Vi rekommenderar att du använder sårbarhetsbedömningen för SQL Server för att proaktivt förbättra databassäkerheten.

Reglemente

Regler (kallas ibland kontroller) definieras i JSON-formaterade filer. Regeluppsättningsformatet kräver att ett regeluppsättningsnamn och en version anges. När du använder anpassade regeluppsättningar kan du enkelt veta vilka rekommendationer från vilken regeluppsättning som kommer.

Microsofts levererade regeluppsättning är tillgänglig på GitHub. Du kan visa hela regeluppsättningen på lagringsplatsen exempel.

SQL Assessment-cmdletar och associerade tillägg

Använda API:et direkt

SQL Assessment API är tillgängligt och kan användas via hanterad kod som en del av någon av dessa komponenter:

Innan du börjar använda själva SQL Assessment-API:et måste du installera något av följande:

SMO Framework kompletteras med SQL Assessment API-tillägget som tillhandahåller följande metoder:

  • GetAssessmentItems: Returnerar tillgängliga kontroller för ett visst SQL-objekt (IEnumerable<...>)
  • GetAssessmentResults: Utvärderar synkront utvärdering och returnerar resultat och eventuella fel (IEnumerable<...>)
  • GetAssessmentResultsList: Utvärderar asynkront utvärdering och returnerar eventuella resultat och fel (Task<...>)

Använda API:et via PowerShell

Om du vill anropa SQL Assessment API via PowerShell måste du installera SQL Server PowerShell-modulen. Modulen SqlServer innehåller två cmdletar som fungerar med SQL Assessment API:

  • Get-SqlAssessmentItem: Innehåller en lista över tillgängliga utvärderingskontroller för ett SQL Server-objekt
  • Invoke-SqlAssessment: Ger resultat av en utvärdering

Kom igång med SQL Assessment-cmdlets

En utvärdering utförs mot ett valt SQL Server-objekt. I standardregeluppsättningen finns det endast kontroller för två typer av objekt: Server och Database (förutom dem stöder API:et ytterligare två typer: Filegroup och AvailabilityGroup). Om du vill utvärdera en SQL Server-instans och alla dess databaser bör du köra SQL Assessment-cmdletarna för varje objekt separat. Eller så kan du skicka objekt för utvärdering till SQL Assessment-cmdletar i en variabel eller pipeline.

SqlServer och RegisteredServer objekt är utbytbara, så du kan skicka alla till SQL Assessment-cmdletarna.

Gå igenom följande exempel för att komma igång.

  1. Hämta en lista över tillgängliga kontroller för en lokal standardinstans för att bekanta dig med kontrollerna. I det här exemplet skickar vi utdata från cmdleten Get-SqlInstance till cmdleten Get-SqlAssessmentItem för att skicka instansobjektet till det.

    Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  2. Hämta en lista över tillgängliga kontroller för alla databaser i instansen. Här använder vi cmdleten Get-Item och en sökväg som implementerats med Windows PowerShell SQL Server-providern för att hämta en lista över databaserna och sedan skicka den till cmdleten Get-SqlDatabase .

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

    Du kan också använda cmdleten Get-SqlDatabase för att göra samma sak.

    Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItem
    
  3. Anropa utvärderingen för instansen och spara resultatet i en SQL Server-tabell. I det här exemplet dirigerar vi utdata från cmdleten Get-SqlInstance till cmdleten Invoke-SqlAssessment , som resultaten skickas till cmdleten Write-SqlTableData . Cmdleten Invoke-Assessment körs med parametern -FlattenOutput i det här exemplet. Den här parametern gör utdata lämpliga för cmdleten Write-SqlTableData . Det senare genererar ett fel om du utelämnar parametern.

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

    Nu ska vi anropa en utvärdering för alla databaser i instansen och lägga till resultaten i samma tabell.

    Get-SqlDatabase -ServerInstance 'localhost' |
    Invoke-SqlAssessment -FlattenOutput |
    Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -Force
    
  4. Följ beskrivningar och länkar i tabellen för att ytterligare förstå rekommendationerna.

  5. Anpassa reglerna baserat på din miljö och organisationens krav (se nedan).

  6. Schemalägg en uppgift eller ett jobb för att köra utvärderingen regelbundet eller på begäran för att mäta förloppet.

Anpassa regler

Reglerna är utformade för att vara anpassningsbara och utökningsbara. Microsofts regeluppsättning är utformad för att fungera för de flesta miljöer. Det är dock omöjligt att ha en regeluppsättning som fungerar för varje enskild miljö. Användare kan skriva egna JSON-filer och anpassa befintliga regler eller lägga till nya. Exempel på anpassning och fullständig Microsoft-utgiven regeluppsättning finns på exempellagringsplatsen. Mer information om hur du kör SQL Assessment-cmdletar med anpassade JSON-filer finns i cmdleten Get-Help .

Tillgängliga alternativ med funktionen för regelanpassning

Aktivera/inaktivera vissa regler eller grupper av regler (med taggar)

Du kan tysta specifika regler när de inte tillämpas på din miljö eller tills schemalagt arbete har utförts för att åtgärda problemet.

Ändra tröskelvärdesparametrar

Specifika regler har tröskelvärden som jämförs med det aktuella värdet för ett mått för att ta reda på ett problem. Om standardtrösklarna inte passar kan du ändra dem.

Lägg till fler regler skrivna av dig eller tredje part

Du kan kombinera regeluppsättningar genom att lägga till en eller flera JSON-filer som parametrar i DITT SQL Assessment API-anrop. Din organisation kan skriva dessa filer eller hämta dem från en tredje part. Du kan till exempel ha din JSON-fil som inaktiverar specifika regler från Microsoft-regeluppsättningen och en annan JSON-fil av en branschexpert som innehåller regler som du tycker är användbara för din miljö, följt av en annan JSON-fil som ändrar vissa tröskelvärden i JSON-filen.

Viktigt!

Vi uppmanar dig att inte använda regeluppsättningar som kommer från ej betrodda källor förrän du granskar dem noggrant för att se till att de är säkra.