Share via


Invoke-SqlVulnerabilityAssessmentScan

Invoca uma nova verificação de Avaliação de Vulnerabilidade.

Syntax

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

O cmdlet Invoke-SqlVulnerabilityAssessmentScan executa uma verificação em seu banco de dados. O cmdlet emprega uma base de dados de conhecimento de verificações de segurança que sinalizam vulnerabilidades de segurança e realçam desvios de práticas recomendadas, como configurações incorretas, permissões excessivas e dados confidenciais desprotegidos. As verificações de segurança se baseiam nas práticas recomendadas da Microsoft e se concentram nos problemas de segurança que apresentam os maiores riscos para o banco de dados e seus dados valiosos. Essas verificações de segurança também representam muitos dos requisitos de vários órgãos reguladores para atender aos seus padrões de conformidade.

Os resultados da verificação incluem etapas práticas para resolver cada problema e fornecer scripts de correções personalizadas quando aplicável. Um relatório de avaliação pode ser personalizado para seu ambiente definindo uma linha de base aceitável para configurações de permissão, configurações de recursos e configurações de banco de dados.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Exemplos

Exemplo 1: invocar uma verificação de avaliação de vulnerabilidade usando autenticação do Windows no banco de dados mestre

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

Neste exemplo, invocamos uma verificação de Avaliação de Vulnerabilidade no banco de dados mestre usando autenticação do Windows.

Exemplo 2: invocar uma verificação de avaliação de vulnerabilidade usando o contexto de caminho atual

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

Este exemplo demonstra como Invoke-SqlVulnerabilityAssessmentScan usa o caminho atual para definir o contexto do banco de dados como MyDatabase.

Exemplo 3: invocar uma verificação de avaliação de vulnerabilidade usando credenciais e omitir metadados de verificação de segurança

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  :

Este exemplo demonstra como invocar uma verificação usando um PSCredential. Ele também demonstra o uso do sinalizador -OmitMetadata (observe que o resultado não contém o dicionário de verificações de segurança – esses são os metadados das verificações, como título, descrição etc.).

Exemplo 4: invocar uma verificação de avaliação de vulnerabilidade com uma linha de base

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"
}

Este exemplo demonstra como criar um conjunto de linhas de base e invocar uma verificação com ele. A propriedade BaselineAdjustedSecurityCheckResult no resultado de 'VA2109' contém o resultado ajustado da linha de base. Observe que o status original desse resultado falhou, mas o status de resultado ajustado da linha de base é Passado.

Parâmetros

-Baseline

Um conjunto de linhas de base de verificação de segurança de Avaliação de Vulnerabilidade

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

-ConnectionString

Especifica uma cadeia de conexão para se conectar ao banco de dados. Se esse parâmetro estiver presente, outros parâmetros de conexão serão ignorados

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

-Credential

Especifica uma credencial usada para se conectar ao banco de dados.

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

-DatabaseName

Especifica o nome de um banco de dados. Esse cmdlet se conecta a esse banco de dados na instância especificada no parâmetro ServerInstance.

Se o parâmetro Banco de Dados não for especificado, o banco de dados usado dependerá se o caminho atual especifica a pasta SQLSERVER:\SQL e um nome de banco de dados. Se o caminho especificar a pasta SQL e um nome de banco de dados, esse cmdlet se conectará ao banco de dados especificado no caminho.

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

-InputObject

Especifica o objeto de entrada para a operação de verificação.

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

-OmitMetadata

Se deseja omitir os metadados de verificação de segurança (por exemplo, título, descrição etc.) Observe que Export-VulnerabilityAssessmentScan requer que os metadados de verificação de segurança sejam executados corretamente.

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

-Path

Especifica o caminho para a instância do SQL Server para executar a verificação.

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

-ScanId

A ID de verificação da Avaliação de Vulnerabilidade

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

-ServerInstance

Especifica uma cadeia de caracteres ou um objeto SMO (Objetos de Gerenciamento SQL Server) que especifica o nome de uma instância do Mecanismo de Banco de Dados. Para instâncias padrão, especifique apenas o nome do computador: MyComputer. Para instâncias nomeadas, use o formato ComputerName\InstanceName.

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

Entradas

None

Saídas

System.Object