Freigeben über


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.

Eingaben

None

Ausgaben

System.Object