Partager via


Invoke-SqlVulnerabilityAssessmentScan

Appelle une nouvelle analyse d’évaluation des vulnérabilités.

Syntaxe

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

Description

L’applet de commande Invoke-SqlVulnerabilityAssessmentScan exécute une analyse sur votre base de données. L’applet de commande utilise un base de connaissances de vérifications de sécurité qui signalent les vulnérabilités de sécurité et mettent en évidence les écarts des bonnes pratiques, telles que les configurations incorrectes, les autorisations excessives et les données sensibles non protégées. Les vérifications de sécurité sont basées sur les meilleures pratiques recommandées par Microsoft et se concentrent sur les problèmes de sécurité qui présentent les plus grands risques pour votre base de données et ses données précieuses. Ces contrôles de sécurité représentent également de nombreuses exigences de divers organismes de réglementation pour répondre à leurs normes de conformité.

Les résultats de l’analyse sont accompagnés d’étapes actionnables pour résoudre chaque problème et, le cas échéant, de scripts de correction personnalisés. Un rapport d’évaluation peut être personnalisé pour votre environnement en définissant une base de référence acceptable pour les configurations d’autorisation, les configurations de fonctionnalités et les paramètres de base de données.

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

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

Exemples

Exemple 1 : Appeler une analyse d’évaluation des vulnérabilités à l’aide de Authentification Windows sur la base de données 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]...}

Dans cet exemple, nous appelons une analyse d’évaluation des vulnérabilités sur la base de données maître à l’aide de Authentification Windows.

Exemple 2 : Appeler une analyse d’évaluation des vulnérabilités à l’aide du contexte de chemin actuel

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

Cet exemple montre comment Invoke-SqlVulnerabilityAssessmentScan utilise le chemin d’accès actuel pour définir le contexte de base de données sur MyDatabase.

Exemple 3 : Appeler une analyse d’évaluation des vulnérabilités à l’aide des informations d’identification et omettre les métadonnées de vérification de sécurité

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  :

Cet exemple montre comment appeler une analyse à l’aide d’un PSCredential. Il montre également l’utilisation de l’indicateur -OmitMetadata (notez que le résultat ne contient pas le dictionnaire de vérifications de sécurité - il s’agit des métadonnées des vérifications, telles que le titre, la description, etc.).

Exemple 4 : Appeler une analyse d’évaluation des vulnérabilités avec une base de référence

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"
}

Cet exemple montre comment créer un jeu de base et appeler une analyse avec elle. La propriété BaselineAdjustedSecurityCheckResult dans le résultat de « VA2109 » contient le résultat ajusté planifié. Notez que l’état d’origine de ce résultat a échoué, mais que l’état du résultat ajusté de base est passé.

Paramètres

-Baseline

Ensemble de base de vérification de la sécurité de l’évaluation des vulnérabilités

Type:SecurityCheckBaselineSet
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ConnectionString

Spécifie une chaîne de connexion à connecter à la base de données. Si ce paramètre est présent, d’autres paramètres de connexion sont ignorés

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Credential

Spécifie les informations d’identification utilisées pour se connecter à la base de données.

Type:PSCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DatabaseName

Spécifie le nom d’une base de données. Cette applet de commande se connecte à cette base de données dans l’instance spécifiée dans le paramètre ServerInstance.

Si le paramètre de base de données n’est pas spécifié, la base de données utilisée dépend si le chemin actuel spécifie à la fois le dossier SQLSERVER:\SQL et un nom de base de données. Si le chemin d’accès spécifie à la fois le dossier SQL et un nom de base de données, cette applet de commande se connecte à la base de données spécifiée dans le chemin d’accès.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie l’objet d’entrée de l’opération d’analyse.

Type:Database
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-OmitMetadata

S’il faut omettre les métadonnées de sécurité (par exemple, titre, description, etc.) Notez que Export-VulnerabilityAssessmentScan nécessite que les métadonnées de vérification de sécurité s’exécutent correctement.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Path

Spécifie le chemin d’accès à l’instance de SQL Server pour exécuter l’analyse.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ScanId

ID d’analyse de l’évaluation des vulnérabilités

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ServerInstance

Spécifie une chaîne de caractères ou un objet SMO (Management Objects) SQL Server qui spécifie le nom d’une instance du moteur de base de données. Pour les instances par défaut, spécifiez uniquement le nom de l’ordinateur : MyComputer. Pour les instances nommées, utilisez le format ComputerName\InstanceName.

Type:PSObject
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

None

Sorties

System.Object