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.