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