Invoke-SqlVulnerabilityAssessmentScan

새 취약성 평가 검사를 호출합니다.

Syntax

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

Invoke-SqlVulnerabilityAssessmentScan cmdlet은 데이터베이스에서 검사를 실행합니다. 이 cmdlet은 보안 취약성에 플래그를 지정하고 잘못된 구성, 과도한 권한 및 보호되지 않는 중요한 데이터와 같은 모범 사례의 편차를 강조하는 보안 검사의 기술 자료 사용합니다. 보안 검사는 Microsoft의 권장 모범 사례를 기반으로 하며 데이터베이스 및 중요한 데이터에 가장 큰 위험을 초래하는 보안 문제에 초점을 맞춥니다. 또한 이러한 보안 검사는 규정 준수 표준을 충족하기 위해 다양한 규제 기관의 많은 요구 사항을 나타냅니다.

검색 결과에는 각 문제를 해결하는 실행 가능한 단계가 포함되며 해당하는 경우 사용자 지정된 재구성 스크립트가 제공됩니다. 권한 구성, 기능 구성 및 데이터베이스 설정에 허용되는 기준을 설정하여 환경에 맞게 평가 보고서를 사용자 지정할 수 있습니다.

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

예제

예제 1: master 데이터베이스에서 Windows 인증 사용하여 취약성 평가 검사 호출

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

이 예제에서는 Windows 인증 사용하여 master 데이터베이스에서 취약성 평가 검사를 호출합니다.

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

이 예제에서는 기준 집합을 만들고 이를 사용하여 검사를 호출하는 방법을 보여 줍니다. 'VA2109' 결과의 BaselineAdjustedSecurityCheckResult 속성에는 기준 조정 결과가 포함됩니다. 이 결과의 원래 상태는 실패하지만 기준 조정 결과 상태는 통과됩니다.

매개 변수

-Baseline

취약성 평가 보안 검사 기준 집합

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

-ConnectionString

데이터베이스에 연결할 연결 문자열을 지정합니다. 이 매개 변수가 있으면 다른 연결 매개 변수는 무시됩니다.

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

-Credential

데이터베이스에 연결하는 데 사용되는 자격 증명을 지정합니다.

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

-DatabaseName

데이터베이스의 이름을 지정합니다. 이 cmdlet은 ServerInstance 매개 변수에 지정된 인스턴스에서 이 데이터베이스에 연결합니다.

Database 매개 변수를 지정하지 않은 경우 사용되는 데이터베이스는 현재 경로가 SQLSERVER:\SQL 폴더와 데이터베이스 이름을 둘 다 지정하는지 여부에 따라 달라집니다. 경로가 SQL 폴더와 데이터베이스 이름을 모두 지정하는 경우 이 cmdlet은 경로에 지정된 데이터베이스에 연결합니다.

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

-InputObject

검사 작업의 입력 개체를 지정합니다.

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

-OmitMetadata

보안 검사 메타데이터(예: 제목, 설명 등)를 생략할지 여부 Export-VulnerabilityAssessmentScan 보안 검사 메타데이터가 올바르게 실행되어야 합니다.

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

-Path

검사를 실행할 SQL Server 인스턴스의 경로를 지정합니다.

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

-ScanId

취약성 평가 검사 ID

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

-ServerInstance

데이터베이스 엔진 인스턴스의 이름을 지정하는 문자열 또는 SMO(SQL Server Management Objects) 개체를 지정합니다. 기본 인스턴스의 경우 컴퓨터 이름인 MyComputer만 지정합니다. 명명된 인스턴스의 경우 ComputerName\InstanceName 형식을 사용합니다.

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

입력

None

출력

System.Object