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>]
説明
Invoke-SqlVulnerabilityAssessmentScan コマンドレットは、データベースでスキャンを実行します。 このコマンドレットでは、セキュリティの脆弱性にフラグを設定し、構成ミス、過剰なアクセス許可、保護されていない機密データなどのベスト プラクティスからの逸脱を強調するセキュリティ チェックのサポート情報を採用しています。 セキュリティ チェックは、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: マスター データベースで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 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ConnectionString
データベースに接続する接続文字列を指定します。 このパラメーターが存在する場合、他の接続パラメーターは無視されます
型: | String |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
データベースへの接続に使用する資格情報を指定します。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DatabaseName
データベースの名前を指定します。 このコマンドレットは、ServerInstance パラメーターで指定されたインスタンス内のこのデータベースに接続します。
Database パラメーターが指定されていない場合、使用されるデータベースは、現在のパスで SQLSERVER:\SQL フォルダーとデータベース名の両方を指定するかどうかによって異なります。 パスに SQL フォルダーとデータベース名の両方が指定されている場合、このコマンドレットはパスで指定されたデータベースに接続します。
型: | String |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
スキャン操作の入力オブジェクトを指定します。
型: | Database |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OmitMetadata
セキュリティ チェックのメタデータ (タイトル、説明など) を省略するかどうかExport-VulnerabilityAssessmentScanでは、セキュリティ チェックメタデータが正しく実行される必要があることに注意してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
スキャンを実行するSQL Serverのインスタンスへのパスを指定します。
型: | String |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ScanId
脆弱性評価スキャン ID
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ServerInstance
データベース エンジンのインスタンスの名前を指定する文字列またはSQL Server管理オブジェクト (SMO) オブジェクトを指定します。 既定のインスタンスの場合は、コンピューター名 MyComputer のみを指定します。 名前付きインスタンスの場合は、ComputerName\InstanceName という形式を使用します。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
出力
System.Object