Freigeben über


Invoke-SqlVulnerabilityAssessmentScan

Ruft eine neue Überprüfung der Sicherheitsrisikenbewertung auf.

Syntax

Invoke-SqlVulnerabilityAssessmentScan
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -ConnectionString <String>
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -ServerInstance <PSObject>
      -DatabaseName <String>
      [-Credential <PSCredential>]
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -Path <String>
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -InputObject <Database>
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]

Beschreibung

Das Cmdlet Invoke-SqlVulnerabilityAssessmentScan führt eine Überprüfung auf Ihrer Datenbank aus. Das Cmdlet verwendet eine Wissensdatenbank von Sicherheitsprüfungen, die Sicherheitsrisiken kennzeichnen und Abweichungen von bewährten Methoden hervorheben, z. B. Falschkonfigurationen, übermäßige Berechtigungen und nicht geschützte vertrauliche Daten. Die Sicherheitsüberprüfungen basieren auf den empfohlenen bewährten Methoden von Microsoft und konzentrieren sich auf die Sicherheitsprobleme, die die größten Risiken für Ihre Datenbank und ihre wertvollen Daten darstellen. Diese Sicherheitsprüfungen stellen auch viele der Anforderungen verschiedener Regulierungsbehörden dar, um ihre Compliancestandards zu erfüllen.

Zu den Ergebnissen der Überprüfung zählen Aktionsschritte zum Beheben der jeweiligen Probleme und ggf. das Bereitstellen benutzerdefinierter Skripts zur Wiederherstellung. Ein Bewertungsbericht kann für Ihre Umgebung angepasst werden, indem Sie einen akzeptablen Basisplan für Berechtigungskonfigurationen, Featurekonfigurationen und Datenbankeinstellungen festlegen.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

This cmdlet was removed in v22.3+ of the module.

Beispiele

Beispiel 1: Aufrufen einer Sicherheitsrisikenbewertungsüberprüfung mithilfe von Windows-Authentifizierung in masterdatenbank

PS C:\> Invoke-SqlVulnerabilityAssessmentScan -ServerInstance "MyComputer\MainInstance" -Database "master" -ScanId "MyScan"

Id              : MyScan
ScanType        : BoxDatabase
ScanTriggerType : OnDemand
Server          : MyComputer\MainInstance
Database        : master
Platform        : SqlServer2017
SqlVersion      : 14.0.3015
StartTimeUtc    : 3/17/2018 8:58:02 PM
EndTimeUtc      : 3/17/2018 8:58:41 PM
ToolName        : PowerShell
ToolVersion     : 1.0
Results         : {VA1017, VA1019, VA1020, VA1021...}
SecurityChecks  : {[VA1017, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1019, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1020,
                  Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1021, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck]...}

In diesem Beispiel rufen wir eine Überprüfung der Sicherheitsrisikenbewertung in Masterdatenbank mithilfe von Windows-Authentifizierung auf.

Beispiel 2: Aufrufen einer Sicherheitsrisikenbewertungsüberprüfung mithilfe des aktuellen Pfadkontexts

PS C:\> Set-Location "SQLSERVER:\SQL\MyComputer\MainInstance\Databases\MyDatabase"
PS SQLSERVER:\SQL\MyComputer\MainInstance> Invoke-SqlVulnerabilityAssessmentScan
WARNING: Using provider context. Server = MyComputer\MainInstance, Database = MyDatabase.

Id              : 2018-03-17T22-58-02
ScanType        : BoxDatabase
ScanTriggerType : OnDemand
Server          : MyComputer\MainInstance
Database        : MyDatabase
Platform        : SqlServer2017
SqlVersion      : 14.0.3015
StartTimeUtc    : 3/17/2018 8:58:02 PM
EndTimeUtc      : 3/17/2018 8:58:41 PM
ToolName        : PowerShell
ToolVersion     : 1.0
Results         : {VA1017, VA1019, VA1020, VA1021...}
SecurityChecks  : {[VA1017, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1019, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1020,
                  Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1021, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck]...}

In diesem Beispiel wird veranschaulicht, wie Invoke-SqlVulnerabilityAssessmentScan den aktuellen Pfad zum Festlegen des Datenbankkontexts auf MyDatabase verwendet.

Beispiel 3: Aufrufen einer Sicherheitsrisikenbewertungsüberprüfung mithilfe von Anmeldeinformationen und Auslassen von Sicherheitsüberprüfungsmetadaten

PS C:\> $cred = Get-Credential
PS C:\> Invoke-SqlVulnerabilityAssessmentScan -ServerInstance "MyComputer\MainInstance" -Database "master" -Credential $cred

Id              : 2018-03-17T22-58-02
ScanType        : BoxDatabase
ScanTriggerType : OnDemand
Server          : MyComputer\MainInstance
Database        : MyDatabase
Platform        : SqlServer2017
SqlVersion      : 14.0.3015
StartTimeUtc    : 3/17/2018 8:58:02 PM
EndTimeUtc      : 3/17/2018 8:58:41 PM
ToolName        : PowerShell
ToolVersion     : 1.0
Results         : {VA1017, VA1019, VA1020, VA1021...}
SecurityChecks  :

In diesem Beispiel wird veranschaulicht, wie Sie einen Scan mithilfe einer PS-Anmeldeinformationen aufrufen. Außerdem wird die Verwendung von -OmitMetadata-Flag veranschaulicht (beachten Sie, dass das Ergebnis nicht das Sicherheitsüberprüfungsverzeichnis enthält - dies ist die Metadaten der Prüfungen, z. B. Titel, Beschreibung usw.).

Beispiel 4: Aufrufen einer Sicherheitsrisikobewertungsüberprüfung mit einem Basisplan

PS C:\> [string[][]]$expectedResults = ,("guest", "db_datareader", "SQLUSER", "NONE")
PS C:\> $baseline = New-SqlVulnerabilityAssessmentBaseline -SecurityCheckId "VA2109" -ExpectedResult $expectedResults
PS C:\> $baselineSet = New-SqlVulnerabilityAssessmentBaselineSet -Baselines $baseline
PS C:\> $scanResult = Invoke-SqlVulnerabilityAssessmentScan -ServerInstance "MyComputer\MainInstance" -Database "master" -Baseline $baselineSet
PS C:\> $result2109 = $scanResult.Results.GetEnumerator() | where {$_.Value.SecurityCheckId -eq "VA2109"
}

In diesem Beispiel wird veranschaulicht, wie Sie einen Basisplansatz erstellen und einen Scan aufrufen. Die BaselineAdjustedSecurityCheckResult-Eigenschaft im Ergebnis von "VA2109" enthält das geplante angepasste Ergebnis. Beachten Sie, dass der ursprüngliche Status dieses Ergebnisses fehlgeschlagen ist, aber der geplante angepasste Ergebnisstatus wird übergeben.

Parameter

-Baseline

Basissatz für sicherheitsrelevante Sicherheitsüberprüfungen

Typ:SecurityCheckBaselineSet
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ConnectionString

Gibt eine Verbindungszeichenfolge an, die eine Verbindung mit der Datenbank herstellen soll. Wenn dieser Parameter vorhanden ist, werden andere Verbindungsparameter ignoriert.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Gibt eine Anmeldeinformationen an, die zum Herstellen einer Verbindung mit der Datenbank verwendet werden.

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DatabaseName

Gibt den Namen einer Datenbank an. Dieses Cmdlet verbindet diese Datenbank in der Instanz, die im ServerInstance-Parameter angegeben ist.

Wenn der Datenbankparameter nicht angegeben wird, hängt die datenbank, die verwendet wird, davon ab, ob der aktuelle Pfad sowohl den SQLSERVER:\SQL-Ordner als auch einen Datenbanknamen angibt. Wenn der Pfad sowohl den SQL-Ordner als auch einen Datenbanknamen angibt, verbindet dieses Cmdlet die Datenbank, die im Pfad angegeben ist.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Gibt das Eingabeobjekt für den Scanvorgang an.

Typ:Database
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-OmitMetadata

Ob sie die Sicherheitsüberprüfungsmetadaten auslassen (z. B. Titel, Beschreibung usw.) Beachten Sie, dass Export-VulnerabilityAssessmentScan die Sicherheitsüberprüfungsmetadaten benötigt, die ordnungsgemäß ausgeführt werden sollen.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Path

Gibt den Pfad zur Instanz von SQL Server an, um den Scan auszuführen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ScanId

Id der Überprüfung der Sicherheitsrisikenbewertung

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ServerInstance

Gibt eine Zeichenzeichenfolge oder SQL Server Verwaltungsobjekte (SMO) an, die den Namen einer Instanz des Datenbankmoduls angibt. Geben Sie für Standardinstanzen nur den Computernamen an: MyComputer. Verwenden Sie für benannte Instanzen das Format "ComputerName\InstanceName".

Typ:PSObject
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Ausgaben

System.Object