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