다음을 통해 공유


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

Description

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

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

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: 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 인증을 사용하여 마스터 데이터베이스에서 취약성 평가 검사를 호출합니다.

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

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

매개 변수 속성

형식: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

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

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

매개 변수 속성

형식: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

취약성 평가 검사 ID

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-ServerInstance

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

매개 변수 속성

형식:PSObject
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

ByConnectionParameters
Position:Named
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

None

출력

System.Object