Compartir a través de


Invoke-SqlVulnerabilityAssessmentScan

Invoca un nuevo examen de evaluación de vulnerabilidades.

Sintaxis

ByContext (Es el valor predeterminado).

Invoke-SqlVulnerabilityAssessmentScan
    [-ScanId <String>]
    [-Baseline <SecurityCheckBaselineSet>]
    [-OmitMetadata]
    [<CommonParameters>]

ByConnectionString

Invoke-SqlVulnerabilityAssessmentScan
    -ConnectionString <String>
    [-ScanId <String>]
    [-Baseline <SecurityCheckBaselineSet>]
    [-OmitMetadata]
    [<CommonParameters>]

ByConnectionParameters

Invoke-SqlVulnerabilityAssessmentScan
    -ServerInstance <PSObject>
    -DatabaseName <String>
    [-Credential <PSCredential>]
    [-ScanId <String>]
    [-Baseline <SecurityCheckBaselineSet>]
    [-OmitMetadata]
    [<CommonParameters>]

ByPath

Invoke-SqlVulnerabilityAssessmentScan
    -Path <String>
    [-ScanId <String>]
    [-Baseline <SecurityCheckBaselineSet>]
    [-OmitMetadata]
    [<CommonParameters>]

ByDBObject

Invoke-SqlVulnerabilityAssessmentScan
    -InputObject <Database>
    [-ScanId <String>]
    [-Baseline <SecurityCheckBaselineSet>]
    [-OmitMetadata]
    [<CommonParameters>]

Description

El cmdlet Invoke-SqlVulnerabilityAssessmentScan ejecuta un examen en la base de datos. El cmdlet emplea una base de conocimiento de comprobaciones de seguridad que marcan las vulnerabilidades de seguridad y resaltan las desviaciones de los procedimientos recomendados, como configuraciones incorrectas, permisos excesivos y datos confidenciales no protegidos. Las comprobaciones de seguridad se basan en los procedimientos recomendados de Microsoft y se centran en los problemas de seguridad que presentan los mayores riesgos para la base de datos y sus datos valiosos. Estas comprobaciones de seguridad también representan muchos de los requisitos de diversos organismos reguladores para cumplir sus estándares de cumplimiento.

Los resultados del examen incluyen pasos que requieren acción para corregir cada uno de los problemas y proporcionan scripts de solución personalizados donde sea aplicable. Un informe de evaluación se puede personalizar para su entorno estableciendo una línea base aceptable para las configuraciones de permisos, las configuraciones de características y la configuración de la base de datos.

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

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

Ejemplos

Ejemplo 1: Invocar un examen de evaluación de vulnerabilidades mediante la autenticación de Windows en la base de datos maestra

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

En este ejemplo, se invoca un examen de evaluación de vulnerabilidades en la base de datos maestra mediante la autenticación de Windows.

Ejemplo 2: Invocar un examen de evaluación de vulnerabilidades mediante el contexto de ruta de acceso actual

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

En este ejemplo se muestra cómo Invoke-SqlVulnerabilityAssessmentScan usa la ruta de acceso actual para establecer el contexto de la base de datos en MyDatabase.

Ejemplo 3: Invocar un examen de evaluación de vulnerabilidades mediante credenciales y omitir metadatos de comprobación de seguridad

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  :

En este ejemplo se muestra cómo invocar un examen mediante PSCredential. También muestra el uso de la marca de -OmitMetadata (observe que el resultado no contiene el diccionario de comprobaciones de seguridad: estos son los metadatos de las comprobaciones, como título, descripción, etc.).

Ejemplo 4: Invocar un examen de evaluación de vulnerabilidades con una línea 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"
}

En este ejemplo se muestra cómo crear un conjunto de línea base e invocar un examen con él. La propiedad BaselineAdjustedSecurityCheckResult en el resultado de "VA2109" contiene el resultado ajustado de línea base. Observe que el estado original de este resultado es Error, pero se pasa el estado de resultado ajustado de línea base.

Parámetros

-Baseline

Conjunto de línea de base de comprobación de seguridad de evaluación de vulnerabilidades

Propiedades del parámetro

Tipo:SecurityCheckBaselineSet
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ConnectionString

Especifica una cadena de conexión para conectarse a la base de datos. Si este parámetro está presente, se omitirán otros parámetros de conexión.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByConnectionString
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Credential

Especifica una credencial usada para conectarse a la base de datos.

Propiedades del parámetro

Tipo:PSCredential
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByConnectionParameters
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-DatabaseName

Especifica el nombre de una base de datos. Este cmdlet se conecta a esta base de datos en la instancia especificada en el parámetro ServerInstance.

Si no se especifica el parámetro Database, la base de datos que se usa depende de si la ruta de acceso actual especifica la carpeta SQLSERVER:\SQL y un nombre de base de datos. Si la ruta de acceso especifica la carpeta SQL y un nombre de base de datos, este cmdlet se conecta a la base de datos especificada en la ruta de acceso.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByConnectionParameters
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-InputObject

Especifica el objeto de entrada para la operación de examen.

Propiedades del parámetro

Tipo:Database
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByDBObject
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-OmitMetadata

Si se omitirán los metadatos de comprobación de seguridad (por ejemplo, título, descripción, etc.) Tenga en cuenta que Export-VulnerabilityAssessmentScan requiere que los metadatos de seguridad se ejecuten correctamente.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Path

Especifica la ruta de acceso a la instancia de SQL Server para ejecutar el examen.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByPath
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ScanId

Identificador de examen de evaluación de vulnerabilidades

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ServerInstance

Especifica una cadena de caracteres o un objeto Objetos de administración de SQL Server (SMO) que especifica el nombre de una instancia del motor de base de datos. Para las instancias predeterminadas, especifique solo el nombre del equipo: MyComputer. Para las instancias con nombre, use el formato NombreDeEquipo\NombreDeInstancia.

Propiedades del parámetro

Tipo:PSObject
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ByConnectionParameters
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

None

Salidas

System.Object