Invoke-SqlVulnerabilityAssessmentScan
Вызывает новую проверку оценки уязвимостей.
Синтаксис
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>]
Описание
Командлет Invoke-SqlVulnerabilityAssessmentScan выполняет проверку в базе данных. Командлет использует база знаний проверок безопасности, которые помечают уязвимости системы безопасности и выделяют отклонения от рекомендаций, таких как неправильные настройки, чрезмерные разрешения и незащищенные конфиденциальные данные. Проверки безопасности основаны на рекомендациях корпорации Майкрософт и сосредоточены на проблемах безопасности, которые представляют наибольшие риски для базы данных и ее ценных данных. Эти проверки безопасности также представляют многие требования различных нормативных органов в соответствии со своими стандартами соответствия.
Результаты проверки включают в себя практические действия по устранению каждой проблемы, а также настроенные скрипты исправления, если их можно применить. Отчет об оценке можно настроить для вашей среды, задав приемлемый базовый план для конфигураций разрешений, конфигураций компонентов и параметров базы данных.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
This cmdlet was removed in v22.3+ of the module.
Примеры
Пример 1. Вызов проверки оценки уязвимостей с помощью проверка подлинности Windows в базе данных 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]...}
В этом примере мы вызываем проверку оценки уязвимостей в базе данных master с помощью проверка подлинности Windows.
Пример 2. Вызов проверки оценки уязвимостей с помощью текущего контекста пути
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]...}
В этом примере показано, как Invoke-SqlVulnerabilityAssessmentScan использует текущий путь для задания контекста базы данных MyDatabase.
Пример 3. Вызов проверки оценки уязвимостей с помощью учетных данных и пропуск метаданных проверок безопасности
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 :
В этом примере показано, как вызвать сканирование с помощью PSCredential. Он также демонстрирует использование флага -OmitMetadata (обратите внимание, что результат не содержит словарь проверок безопасности — это метаданные проверок, такие как заголовок, описание и т. д.).
Пример 4. Вызов проверки оценки уязвимостей с помощью базового плана
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"
}
В этом примере показано, как создать базовый набор и вызвать проверку с ним. Свойство BaselineAdjustedSecurityCheckResult в результате va2109 содержит скорректированный базовый результат. Обратите внимание, что исходное состояние этого результата завершилось сбоем, но измененное базовое состояние результата передано.
Параметры
-Baseline
Набор базовых показателей проверки безопасности для оценки уязвимостей
Тип: | SecurityCheckBaselineSet |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ConnectionString
Указывает строку подключения для подключения к базе данных. Если этот параметр присутствует, другие параметры подключения будут игнорироваться.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Credential
Указывает учетные данные, используемые для подключения к базе данных.
Тип: | PSCredential |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DatabaseName
Указывает имя базы данных. Этот командлет подключается к этой базе данных в экземпляре, указанном в параметре ServerInstance.
Если параметр базы данных не указан, используемая база данных зависит от того, указывает ли текущий путь как папку SQLSERVER:\SQL, так и имя базы данных. Если путь указывает папку SQL и имя базы данных, этот командлет подключается к базе данных, указанной в пути.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Указывает входной объект для операции сканирования.
Тип: | Database |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-OmitMetadata
Указывает, следует ли пропускать метаданные проверки безопасности (например, заголовок, описание и т. д.) Обратите внимание, что Export-VulnerabilityAssessmentScan требует проверки безопасности метаданных для правильного выполнения.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает путь к экземпляру SQL Server для выполнения проверки.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ScanId
Идентификатор проверки оценки уязвимостей
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ServerInstance
Задает символьную строку или объект SQL Server объектов SMO, указывающий имя экземпляра ядра СУБД. Для экземпляров по умолчанию укажите только имя компьютера: MyComputer. Для именованных экземпляров используйте формат ComputerName\InstanceName.
Тип: | PSObject |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Выходные данные
System.Object