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