共用方式為


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 驗證在 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

弱點評量安全性檢查基準集

參數屬性

類型:SecurityCheckBaselineSet
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ConnectionString

指定要連線到資料庫的連接字串。 如果此參數存在,則會忽略其他連接參數

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionString
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Credential

指定用來連線到資料庫的認證。

參數屬性

類型:PSCredential
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-DatabaseName

指定資料庫的名稱。 此 Cmdlet 會連線到 ServerInstance 參數中所指定實例中的這個資料庫。

如果未指定 Database 參數,則所使用的資料庫取決於目前路徑是否同時指定 SQLSERVER:\SQL 資料夾和資料庫名稱。 如果路徑同時指定 SQL 資料夾和資料庫名稱,此 Cmdlet 會連接到路徑中指定的資料庫。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InputObject

指定掃描作業的輸入物件。

參數屬性

類型:Database
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByDBObject
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-OmitMetadata

是否要省略安全性檢查元資料(例如標題、描述等)請注意,Export-VulnerabilityAssessmentScan 需要安全性檢查元數據才能正確執行。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Path

指定要執行掃描之 SQL Server 實例的路徑。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByPath
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ScanId

弱點評量掃描標識碼

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ServerInstance

指定指定 Database Engine 實例名稱的字元字串或 SQL Server 管理物件 (SMO) 物件。 針對預設實例,只指定計算機名稱:MyComputer。 針對具名實例,請使用 ComputerName\InstanceName 格式。

參數屬性

類型:PSObject
預設值:None
支援萬用字元:False
不要顯示: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