共用方式為


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

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
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ConnectionString

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

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Credential

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

類型:PSCredential
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DatabaseName

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

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

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-InputObject

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

類型:Database
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-OmitMetadata

是否省略安全性檢查中繼資料 (例如標題、描述等) 請注意,Export-VulnerabilityAssessmentScan要求安全性檢查中繼資料正確執行。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Path

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

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ScanId

弱點評量掃描識別碼

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ServerInstance

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

類型:PSObject
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

輸入

None

輸出

System.Object