Invoke-SqlVulnerabilityAssessmentScan

Richiama una nuova analisi valutazione della vulnerabilità.

Sintassi

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>]

Descrizione

Il cmdlet Invoke-SqlVulnerabilityAssessmentScan esegue un'analisi nel database. Il cmdlet usa un knowledge base di controlli di sicurezza che segnalano vulnerabilità di sicurezza e evidenziano deviazioni dalle procedure consigliate, ad esempio configurazioni non corrette, autorizzazioni eccessive e dati sensibili non protetti. I controlli di sicurezza si basano sulle procedure consigliate di Microsoft e si concentrano sui problemi di sicurezza che presentano i maggiori rischi per il database e i relativi dati preziosi. Questi controlli di sicurezza rappresentano anche molti dei requisiti di vari organismi normativi per soddisfare gli standard di conformità.

I risultati dell'analisi includono le azioni applicabili per risolvere ogni problema, oltre a script di correzione personalizzati, ove applicabile. Un report di valutazione può essere personalizzato per l'ambiente impostando una baseline accettabile per le configurazioni delle autorizzazioni, le configurazioni delle funzionalità e le impostazioni del database.

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

Esempio

Esempio 1: Richiamare un'analisi di valutazione della vulnerabilità usando autenticazione di Windows nel database master

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 questo esempio viene richiamata un'analisi valutazione vulnerabilità nel database master usando autenticazione di Windows.

Esempio 2: Richiamare un'analisi di valutazione della vulnerabilità usando il contesto del percorso corrente

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 questo esempio viene illustrato come Invoke-SqlVulnerabilityAssessmentScan usa il percorso corrente per impostare il contesto del database su MyDatabase.

Esempio 3: Richiamare un'analisi di valutazione della vulnerabilità usando le credenziali e omettere i metadati dei controlli di sicurezza

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 questo esempio viene illustrato come richiamare un'analisi usando psCredential. Illustra anche l'uso del flag -OmitMetadata (si noti che il risultato non contiene il dizionario controlli di sicurezza: si tratta dei metadati dei controlli, ad esempio titolo, descrizione e così via).

Esempio 4: Richiamare un'analisi di valutazione della vulnerabilità con una baseline

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 questo esempio viene illustrato come creare un set di baseline e richiamare un'analisi con essa. La proprietà BaselineAdjustedSecurityCheckResult nel risultato di 'VA2109' contiene il risultato corretto della baseline. Si noti che lo stato originale di questo risultato è Non riuscito, ma lo stato del risultato corretto della baseline è Passato.

Parametri

-Baseline

Set di base di base di controllo della valutazione della vulnerabilità

Type:SecurityCheckBaselineSet
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionString

Specifica una stringa di connessione per connettersi al database. Se questo parametro è presente, verranno ignorati altri parametri di connessione

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Specifica una credenziale usata per connettersi al database.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseName

Specifica il nome di un database. Questo cmdlet si connette a questo database nell'istanza specificata nel parametro ServerInstance.

Se il parametro Database non è specificato, il database utilizzato dipende dal fatto che il percorso corrente specifica sia la cartella SQLSERVER:\SQL che un nome di database. Se il percorso specifica sia la cartella SQL che un nome di database, questo cmdlet si connette al database specificato nel percorso.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifica l'oggetto di input per l'operazione di analisi.

Type:Database
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OmitMetadata

Se omettere i metadati dei controlli di sicurezza (ad esempio titolo, descrizione e così via) Si noti che Export-VulnerabilityAssessmentScan richiede che i metadati dei controlli di sicurezza vengano eseguiti correttamente.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Specifica il percorso dell'istanza di SQL Server per eseguire l'analisi.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ScanId

ID analisi valutazione vulnerabilità

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

Specifica una stringa di caratteri o un oggetto SMO (Management Objects) SQL Server che specifica il nome di un'istanza del motore di database. Per le istanze predefinite, specificare solo il nome del computer: MyComputer. Per le istanze denominate, usare il formato ComputerName\InstanceName.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Output

System.Object