Invoke-SqlVulnerabilityAssessmentScan
Ruft eine neue Überprüfung der Sicherheitsrisikobewertung auf.
Syntax
ByContext (Standardwert)
Invoke-SqlVulnerabilityAssessmentScan
[-ScanId <String>]
[-Baseline <SecurityCheckBaselineSet>]
[-OmitMetadata]
[<CommonParameters>]
ByConnectionString
Invoke-SqlVulnerabilityAssessmentScan
-ConnectionString <String>
[-ScanId <String>]
[-Baseline <SecurityCheckBaselineSet>]
[-OmitMetadata]
[<CommonParameters>]
ByConnectionParameters
Invoke-SqlVulnerabilityAssessmentScan
-ServerInstance <PSObject>
-DatabaseName <String>
[-Credential <PSCredential>]
[-ScanId <String>]
[-Baseline <SecurityCheckBaselineSet>]
[-OmitMetadata]
[<CommonParameters>]
ByPath
Invoke-SqlVulnerabilityAssessmentScan
-Path <String>
[-ScanId <String>]
[-Baseline <SecurityCheckBaselineSet>]
[-OmitMetadata]
[<CommonParameters>]
ByDBObject
Invoke-SqlVulnerabilityAssessmentScan
-InputObject <Database>
[-ScanId <String>]
[-Baseline <SecurityCheckBaselineSet>]
[-OmitMetadata]
[<CommonParameters>]
Beschreibung
Das Cmdlet Invoke-SqlVulnerabilityAssessmentScan führt eine Überprüfung ihrer Datenbank aus. Das Cmdlet verwendet eine Wissensdatenbank mit Sicherheitsüberprüfungen, die Sicherheitsrisiken kennzeichnen und Abweichungen von bewährten Methoden hervorheben, z. B. Fehlkonfigurationen, ü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 Sicherheitskontrollen stellen auch viele der Anforderungen verschiedener Regulierungsstellen 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 ein akzeptabler Basisplan für Berechtigungskonfigurationen, Featurekonfigurationen und Datenbankeinstellungen festgelegt wird.
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 Überprüfung der Sicherheitsrisikobewertung mithilfe der Windows-Authentifizierung in der 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 wird eine Überprüfung der Sicherheitsrisikobewertung in der Masterdatenbank mithilfe der Windows-Authentifizierung aufgerufen.
Beispiel 2: Aufrufen einer Überprüfung der Sicherheitsrisikobewertung 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 verwendet, um den Datenbankkontext auf MyDatabase festzulegen.
Beispiel 3: Aufrufen einer Überprüfung der Sicherheitsrisikobewertung mithilfe von Anmeldeinformationen und Weglassen 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 eine Überprüfung mithilfe einer PSCredential aufgerufen wird. Außerdem wird die Verwendung -OmitMetadata Flags veranschaulicht (beachten Sie, dass das Ergebnis nicht das Sicherheitsüberprüfungswörterbuch enthält – dies sind die Metadaten der Prüfungen, z. B. Titel, Beschreibung usw.).
Beispiel 4: Aufrufen einer Überprüfung der Sicherheitsrisikobewertung 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 eine Überprüfung damit 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
Sicherheitsüberprüfungsbasissatz für die Sicherheitsüberprüfung der Sicherheitsrisiken
Parametereigenschaften
| Typ: | SecurityCheckBaselineSet |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ConnectionString
Gibt eine Verbindungszeichenfolge an, die mit der Datenbank verbunden werden soll. Wenn dieser Parameter vorhanden ist, werden andere Verbindungsparameter ignoriert.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ByConnectionString
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Credential
Gibt eine Anmeldeinformation an, die zum Herstellen einer Verbindung mit der Datenbank verwendet wird.
Parametereigenschaften
| Typ: | PSCredential |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ByConnectionParameters
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-DatabaseName
Gibt den Namen einer Datenbank an. Mit diesem Cmdlet wird eine Verbindung mit dieser Datenbank in der Instanz hergestellt, die im Parameter "ServerInstance" angegeben ist.
Wenn der Parameter "Database" nicht angegeben ist, hängt die verwendete Datenbank 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, stellt dieses Cmdlet eine Verbindung mit der Datenbank herstellt, die im Pfad angegeben ist.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ByConnectionParameters
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
Gibt das Eingabeobjekt für den Scanvorgang an.
Parametereigenschaften
| Typ: | Database |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ByDBObject
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-OmitMetadata
Gibt an, ob die Sicherheitsüberprüfungsmetadaten weggelassen werden sollen (z. B. Titel, Beschreibung usw.) Beachten Sie, dass Export-VulnerabilityAssessmentScan die Sicherheitsüberprüfungsmetadaten ordnungsgemäß ausführen müssen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Path
Gibt den Pfad zur Instanz von SQL Server an, um den Scan auszuführen.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ByPath
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ScanId
Die Überprüfungs-ID der Sicherheitsrisikobewertung
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ServerInstance
Gibt eine Zeichenfolge oder ein SMO-Objekt (SQL Server Management Objects) an, das den Namen einer Instanz des Datenbankmoduls angibt. Geben Sie für Standardinstanzen nur den Computernamen "MyComputer" an. Verwenden Sie für benannte Instanzen das Format "ComputerName\InstanceName".
Parametereigenschaften
| Typ: | PSObject |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ByConnectionParameters
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.