Поделиться через


Invoke-SqlVulnerabilityAssessmentScan

Вызывает новую проверку оценки уязвимостей.

Синтаксис

ByContext (по умолчанию)

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

Описание

Командлет 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
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ConnectionString

Указывает строку подключения для подключения к базе данных. Если этот параметр присутствует, другие параметры подключения будут игнорироваться.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByConnectionString
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Credential

Указывает учетные данные, используемые для подключения к базе данных.

Свойства параметра

Тип:PSCredential
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByConnectionParameters
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-DatabaseName

Указывает имя базы данных. Этот командлет подключается к этой базе данных в экземпляре, указанном в параметре ServerInstance.

Если параметр базы данных не указан, используемая база данных зависит от того, указывает ли текущий путь как папку SQLSERVER:\SQL, так и имя базы данных. Если путь указывает папку SQL и имя базы данных, этот командлет подключается к базе данных, указанной в пути.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByConnectionParameters
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-InputObject

Указывает входной объект для операции сканирования.

Свойства параметра

Тип:Database
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByDBObject
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-OmitMetadata

Опустить ли метаданные проверки безопасности (например, заголовок, описание и т. д.) Обратите внимание, что Export-VulnerabilityAssessmentScan требует правильного выполнения метаданных проверки безопасности.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

Указывает путь к экземпляру SQL Server для выполнения проверки.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByPath
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ScanId

Идентификатор проверки оценки уязвимостей

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ServerInstance

Указывает символьную строку или объект объектов SMO SQL Server, указывающий имя экземпляра ядра СУБД. Для экземпляров по умолчанию укажите только имя компьютера: MyComputer. Для именованных экземпляров используйте формат ComputerName\InstanceName.

Свойства параметра

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByConnectionParameters
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

None

Выходные данные

System.Object