Compartilhar via


Invoke-SqlVulnerabilityAssessmentScan

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

Sintaxe

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.

This cmdlet was removed in v22.3+ of the module.

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

Tipo:SecurityCheckBaselineSet
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Credential

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

Tipo:PSCredential
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

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

Tipo:Database
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Path

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

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ScanId

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

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:PSObject
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

None

Saídas

System.Object