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.

例 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

脆弱性評価セキュリティ チェックベースライン セット

Type:SecurityCheckBaselineSet
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionString

データベースに接続する接続文字列を指定します。 このパラメーターが存在する場合、他の接続パラメーターは無視されます

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Credential

データベースへの接続に使用する資格情報を指定します。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseName

データベースの名前を指定します。 このコマンドレットは、ServerInstance パラメーターで指定されたインスタンス内のこのデータベースに接続します。

Database パラメーターが指定されていない場合、使用されるデータベースは、現在のパスで SQLSERVER:\SQL フォルダーとデータベース名の両方を指定するかどうかによって異なります。 パスに SQL フォルダーとデータベース名の両方が指定されている場合、このコマンドレットはパスで指定されたデータベースに接続します。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

スキャン操作の入力オブジェクトを指定します。

Type:Database
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OmitMetadata

セキュリティ チェックのメタデータ (タイトル、説明など) を省略するかどうかExport-VulnerabilityAssessmentScanでは、セキュリティ チェックメタデータが正しく実行される必要があることに注意してください。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

スキャンを実行するSQL Serverのインスタンスへのパスを指定します。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ScanId

脆弱性評価スキャン ID

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

データベース エンジンのインスタンスの名前を指定する文字列またはSQL Server管理オブジェクト (SMO) オブジェクトを指定します。 既定のインスタンスの場合は、コンピューター名 MyComputer のみを指定します。 名前付きインスタンスの場合は、ComputerName\InstanceName という形式を使用します。

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

入力

None

出力

System.Object