Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2012 (11.x) en hoger
Azure SQL Managed Instance
SQL Server op Azure Virtual Machines
SQL Server op Linux
De SQL Assessment-API biedt een mechanisme om de configuratie van uw SQL Server te evalueren voor aanbevolen procedures. De API wordt geleverd met een regelset met best practice-regels die door het SQL Server-team worden voorgesteld. Deze regelset is uitgebreid met de release van nieuwe versies, maar tegelijkertijd is de API gebouwd om een zeer aanpasbare en uitbreidbare oplossing te bieden. Gebruikers kunnen de standaardregels afstemmen en hun eigen regels maken.
De SQL Assessment-API is handig als u ervoor wilt zorgen dat uw SQL Server-configuratie in overeenstemming is met aanbevolen aanbevolen procedures. Na een eerste evaluatie kan configuratiestabiliteit worden bijgehouden door regelmatig geplande evaluaties.
De API kan worden gebruikt om het volgende te evalueren:
- SQL Server op virtuele machines in Azure
- Azure SQL Beheerde Instantie
- SQL Server 2012 en hoger
- SQL Server op linux-systemen en -containers
Opmerking
De SQL Assessment-API biedt een evaluatie op verschillende gebieden, maar gaat niet diep in de beveiliging. U wordt aangeraden de evaluatie van beveiligingsproblemen voor SQL Server te gebruiken om de beveiliging van uw database proactief te verbeteren.
Reglement
Regels (ook wel controles genoemd) worden gedefinieerd in bestanden met JSON-indeling. Voor het regelsformaat moet de naam en versie van de regelset worden opgegeven. Wanneer u aangepaste regelsets gebruikt, kunt u eenvoudig weten welke aanbevelingen van welke regelset afkomstig zijn.
De door Microsoft verzonden regelset is beschikbaar op GitHub. U kunt de hele regelset bekijken in de opslagplaats met voorbeelden.
SQL Assessment-cmdlets en bijbehorende extensies
De API rechtstreeks gebruiken
De SQL Assessment-API is beschikbaar en kan worden gebruikt via beheerde code als onderdeel van een van deze onderdelen:
- SQL Server Management Objects (SMO) ( releaseversie vanaf juli 2019 en hoger)
- SQL Server PowerShell-module (releaseversie vanaf juli 2019 en hoger)
Voordat u de SQL Assessment-API zelf gaat gebruiken, moet u een van deze volgende installeren:
Het SMO Framework wordt aangevuld met de SQL Assessment API-extensie die de volgende methoden biedt:
-
GetAssessmentItems: retourneert beschikbare controles voor een bepaald SQL-object (IEnumerable<...>) -
GetAssessmentResults: evalueert synchroon de evaluatie en retourneert resultaten en fouten indien van toepassing (IEnumerable<...>) -
GetAssessmentResultsList: Asynchroon evalueert de evaluatie en retourneert resultaten en fouten indien van toepassing (Task<...>)
De API gebruiken via PowerShell
Als u de SQL Assessment-API wilt aanroepen via PowerShell, moet u de SQL Server PowerShell-module installeren. De SqlServer module biedt twee cmdlets die werken met de SQL Assessment-API:
-
Get-SqlAssessmentItem: Biedt een lijst met beschikbare evaluatiecontroles voor een SQL Server-object -
Invoke-SqlAssessment: Geeft resultaten van een evaluatie
Aan de slag met SQL Assessment-cmdlets
Er wordt een evaluatie uitgevoerd op basis van een gekozen SQL Server-object. In de standaardregelset zijn er alleen controles op twee soorten objecten: Server en Database (naast de standaardregelset ondersteunt de API nog twee soorten: Filegroup en AvailabilityGroup). Als u een SQL Server-exemplaar en alle bijbehorende databases wilt evalueren, moet u de SQL Assessment-cmdlets afzonderlijk uitvoeren voor elk object. U kunt ook objecten voor evaluatie doorgeven aan de SQL-evaluatie-cmdlets in een variabele of de pijplijn.
SqlServer en RegisteredServer objecten zijn uitwisselbaar, zodat u elke aan de SQL-evaluatie-cmdlets kunt doorgeven.
Doorloop de volgende voorbeelden om aan de slag te gaan.
Haal een lijst op van beschikbare controles voor een lokale standaardinstantie om vertrouwd te raken met de controles. In dit voorbeeld wordt de uitvoer van de
Get-SqlInstancecmdlet doorgegeven aan deGet-SqlAssessmentItemcmdlet om het exemplaarobject door te geven.Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItemHaal een lijst met beschikbare controles op voor alle databases van het exemplaar. Hier gebruiken we de
Get-Itemcmdlet en een pad dat is geïmplementeerd met de Windows PowerShell SQL Server-provider om een lijst met de databases op te halen en deze vervolgens door te geven aan deGet-SqlDatabasecmdlet.Get-Item SQLSERVER:\SQL\localhost\default | Get-SqlAssessmentItemU kunt ook de
Get-SqlDatabasecmdlet gebruiken om hetzelfde te doen.Get-SqlDatabase -ServerInstance 'localhost' | Get-SqlAssessmentItemRoep evaluatie aan voor het exemplaar en sla de resultaten op in een SQL Server-tabel. In dit voorbeeld wordt de uitvoer van de
Get-SqlInstancecmdlet doorgesluisd naar deInvoke-SqlAssessmentcmdlet. De resultaten worden doorgesluisd naar deWrite-SqlTableDatacmdlet. DeInvoke-Assessmentcmdlet wordt uitgevoerd met de-FlattenOutputparameter in dit voorbeeld. Deze parameter maakt de uitvoer geschikt voor deWrite-SqlTableDatacmdlet. Deze laatste genereert een fout als u de parameter weglaat.Get-SqlInstance -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -ForceWe gaan nu een evaluatie aanroepen voor alle databases van het exemplaar en de resultaten toevoegen aan dezelfde tabel.
Get-SqlDatabase -ServerInstance 'localhost' | Invoke-SqlAssessment -FlattenOutput | Write-SqlTableData -ServerInstance 'localhost' -DatabaseName SQLAssessmentDemo -SchemaName Assessment -TableName Results -ForceVolg beschrijvingen en koppelingen in de tabel om meer inzicht te hebben in de aanbevelingen.
Pas de regels aan op basis van uw omgeving en organisatievereisten (zie hieronder).
Plan een taak of taak om de evaluatie regelmatig of op aanvraag uit te voeren om de voortgang te meten.
Regels aanpassen
Regels zijn ontworpen om aanpasbaar en uitbreidbaar te zijn. De regelset van Microsoft is ontworpen voor de meeste omgevingen. Het is echter onmogelijk om één regelset te hebben die werkt voor elke omgeving. Gebruikers kunnen hun eigen JSON-bestanden schrijven en bestaande regels aanpassen of nieuwe regels toevoegen. Voorbeelden van aanpassing en volledige door Microsoft uitgebrachte regelset zijn beschikbaar in de opslagplaats met voorbeelden. Gebruik de Get-Help cmdlet voor meer informatie over het uitvoeren van de SQL-evaluatie-cmdlets met aangepaste JSON-bestanden.
Beschikbare opties met regelaanpassingsfunctie
Bepaalde regels of groepen regels in- of uitschakelen (met behulp van tags)
U kunt specifieke regels dempen wanneer ze niet worden toegepast op uw omgeving of totdat gepland werk wordt uitgevoerd om het probleem op te lossen.
Drempelwaardeparameters wijzigen
Specifieke regels hebben drempelwaarden die worden vergeleken met de huidige waarde van een metrische waarde om een probleem te achterhalen. Als de standaarddrempelwaarden niet passen, kunt u deze wijzigen.
Meer regels toevoegen die door u of derden zijn geschreven
U kunt regelsets combineren door een of meer JSON-bestanden als parameters toe te voegen aan uw SQL Assessment API-aanroep. Uw organisatie kan deze bestanden schrijven of verkrijgen van een derde partij. U kunt bijvoorbeeld uw JSON-bestand hebben dat specifieke regels uit de Microsoft-regelset uitschakelt en een ander JSON-bestand door een expert in de branche die regels bevat die u nuttig vindt voor uw omgeving, gevolgd door een ander JSON-bestand dat enkele drempelwaarden in dat JSON-bestand wijzigt.
Belangrijk
We raden u aan geen regelsets te gebruiken die afkomstig zijn van niet-vertrouwde bronnen, totdat u ze grondig bekijkt om ervoor te zorgen dat ze veilig zijn.