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