Todos los productos
Search
Centro de documentos

Data Management:SQL Correct

Última actualización: Sep 03, 2026

La función SQL Correct es el punto de entrada para ejecutar cambios en SQL y requiere un alto nivel de seguridad. Cuando usted envía un ticket para su aprobación, una serie de reglas de seguridad verifica la solicitud. Solo las sentencias SQL que superan esta verificación se pueden ejecutar.

Requisitos previos

Usted debe tener el rol de Administrator, DBA o Security Administrator.

Contexto

Las reglas de seguridad en Data Management (DMS) ofrecen capacidades flexibles de lenguaje específico de dominio (DSL). Esto le permite personalizar los niveles de riesgo según sus necesidades y utilizar distintos flujos de trabajo de aprobación para cambios con diferentes niveles de riesgo. Por ejemplo, puede restringir estrictamente la ejecución de SQL o permitir de forma flexible todas las sentencias SQL.

Puntos de control del módulo SQL Correct

Punto de control

Descripción

Ejemplo

Basic Configuration Item

Esta sección contiene cinco reglas predeterminadas:

  • Default approval template for data changes: El ID de la plantilla de aprobación predeterminada para tickets de cambio de datos es 853, y el aprobador es el DBA.

    Nota

    Para cambiar la plantilla de aprobación predeterminada, consulte Change the default approval template.

  • Risk level list for data changes: Los niveles de riesgo se utilizan para evaluar los riesgos de los cambios en los tickets. Puede establecer diferentes niveles de riesgo y flujos de trabajo de aprobación para distintos escenarios. Se usa principalmente en los puntos de control Risk Identification Rules y Risk Approval Rules.

    Hay cuatro niveles de riesgo predeterminados disponibles:

    • LOW: Riesgo bajo

    • MIDDLE: Riesgo medio

    • HIGH: Riesgo alto

    • HIGHEST: Riesgo crítico

  • Support for simple mode in data import: Especifica si se admite el modo simple al crear tickets de importación de datos para las bases de datos que usan esta regla de seguridad. Para obtener más información, consulte Data Import.

  • Allow Skipping The Affected Rows Check For Standard Data Changes: Si habilita esta regla, DMS prohíbe omitir la verificación de filas afectadas en los tickets de cambio de datos estándar durante la etapa de preverificación. De lo contrario, puede omitir esta verificación.

  • Prohibit submitting normal data change tickets with inconsistent row count checks: Si esta regla está habilitada, no se pueden enviar tickets de cambio de datos normales con una verificación de recuento de filas inconsistente. De lo contrario, sí se pueden enviar.

-

SQL execution rules

Restringe las sentencias SQL que se pueden ejecutar en la ventana de SQL. Solo se pueden ejecutar las sentencias SQL permitidas.

Nota

Si hay dos reglas en conflicto habilitadas, se aplica la regla más estricta.

Por ejemplo, si las siguientes dos reglas están habilitadas simultáneamente, el sistema aplica la segunda regla.

  • Permitir que todas las sentencias DML se ejecuten directamente en la consola de SQL.

  • Prohibir que todas las sentencias DML se ejecuten directamente en la consola de SQL. Deben ejecutarse mediante tickets.

Para permitir que solo las sentencias DML modifiquen la base de datos de producción en línea, agregue la siguiente regla de ejecución de SQL:

Suposiciones

if
  @fac.env_type not in ['product']
  and
  @fac.sql_type in [ 'UPDATE','DELETE','INSERT']
then
  @act.allow_submit
end

Significado: Si el entorno de la base de datos no es un entorno de producción y la sentencia SQL es de tipo UPDATE, DELETE o INSERT, se permite la ejecución de la sentencia SQL.

Risk Identification Rules

Identifica el nivel de riesgo de los tickets enviados. Puede personalizar los niveles de riesgo según condiciones como el entorno de la base de datos, el número de filas afectadas y el tipo de SQL.

Nota

Distintas reglas de seguridad marcan una tarea de cambio con diferentes niveles de riesgo. El nivel de riesgo final es el más alto entre todos los niveles marcados.

Por ejemplo, una tarea de cambio de SQL que tiene 5 riesgos bajos, 3 riesgos medios y 1 riesgo alto se clasifica como de riesgo alto.

Para definir los entornos sin conexión como de bajo riesgo, agregue la siguiente regla de identificación de riesgos:

if
  @fac.env_type not in ['product','pre']
then
  @act.mark_risk 'low' 'Low risk: offline environment'
end

Significado: Si el entorno de la base de datos no es un entorno de producción, el nivel de riesgo es bajo.

Risk Approval Rules

Configure o personalice reglas de aprobación para diferentes niveles de riesgo.

Si un cambio en la base de datos no coincide con ningún nivel de riesgo en el punto de control Risk Identification Rules, se utiliza el flujo de trabajo de aprobación especificado por la Default approval template for data changes en la sección Basic Configuration Item.

De forma predeterminada, un entorno de pruebas se considera de bajo riesgo y no requiere aprobación.

Batch data import rules

Reglas de validación que se aplican a los tickets de Data Import.

Permite la importación por lotes de sentencias de inserción.

Cambiar la plantilla de aprobación predeterminada

  1. Inicie sesión en DMS 5.0.

  2. Coloque el puntero sobre el icono 2023-01-28_15-57-17.png en la esquina superior izquierda y seleccione All Features > Security and disaster recovery (DBS) > Security Rules.

    Nota

    Si utiliza la consola de DMS en modo normal, seleccione Security and disaster recovery (DBS) > Security Rules en la barra de navegación superior.

  3. En la pestaña Security Rules, busque el conjunto de reglas deseado y haga clic en Edit en la columna Actions.

  4. En la barra de navegación izquierda de la página Details, haga clic en SQL Correct.

  5. En la sección Checkpoints, haga clic en Basic Configuration Item.

  6. En la fila Data change default approval Template, haga clic en Edit en la columna Actions.

  7. En el cuadro de diálogo Change Configuration Item, haga clic en Switch Approval Template.

  8. En el cuadro de diálogo Switch Approval Template, busque la plantilla deseada y haga clic en Select en la columna Actions.

    Nota

    Si los tickets no requieren aprobación, puede hacer clic en Reset to Approval-Free para omitir el paso de aprobación.

  9. Haga clic en Submit.

Factores y acciones del módulo SQL Correct

Factores

Los factores son variables integradas del sistema. Puede utilizarlos para obtener información de contexto para la verificación de reglas de seguridad, como el tipo de SQL y el número de filas afectadas.

  • Todos los factores comienzan con @fac. seguido del nombre del factor.

  • Cada punto de control en cada módulo proporciona diferentes factores.

Tabla 1. Lista de factores

Factor

Descripción

@fac.env_type

El tipo de entorno. El valor es el identificador del entorno, como DEV o PRODUCT. Para obtener más información, consulte Instance environments.

@fac.sql_type

El tipo de script SQL, como UPDATE o INSERT. Para obtener más información, consulte la descripción de las subclases de SQL en SQLConsole.

@fac.detail_type

El tipo de cambio de datos:

  • COMMON: Cambio de datos normal

  • CHUNK_DML: Cambio de datos sin bloqueo

  • PROCEDURE: Procedimiento almacenado

  • CRON_CLEAR_DATA: Limpieza programada de tablas

  • BIG_FILE: Importación de datos por lotes

@fac.is_logic

Indica si la base de datos es una base de datos lógica.

@fac.extra_info

Otra información de cambio. Este factor no está en uso.

@fac.is_ignore_affect_rows

Indica si se debe omitir la verificación.

@fac.insert_rows

El número de filas afectadas para una operación de inserción.

@fac.update_delete_rows

El número de filas afectadas.

@fac.max_alter_table_size

El tamaño máximo de espacio de tabla de la tabla modificada.

@fac.is_has_security_column

Indica si el script SQL contiene columnas sensibles.

@fac.security_column_list

Una lista de columnas sensibles que contiene el script SQL.

@fac.risk_level

El nivel de riesgo detectado. Los valores válidos son cadenas en inglés en minúsculas, ordenadas de menor a mayor:

  • low: riesgo bajo

  • middle: riesgo medio

  • high: riesgo alto

  • highest: riesgo crítico

@fac.risk_reason

La razón por la cual se detectó este nivel de riesgo.

@fac.table_name_list

Una lista de nombres de tablas involucradas en el cambio de SQL. Ejemplo:

if    
   'tb_order' in @fac.table_name_list or 'tb1_order' in @fac.table_name_list
then    
    @act.mark_risk 'high' 'High risk: Involves changes to the order table'
end

Significado: Si el cambio de SQL involucra la tabla tb_order o tb1_order, el nivel de riesgo es alto.

Acciones

Una acción es un comportamiento que el sistema realiza cuando se cumple la condición if. Algunos ejemplos incluyen prohibir el envío de tickets, seleccionar un flujo de trabajo, permitir la ejecución y rechazar la ejecución.

  • Todas las acciones comienzan con @act. seguido del nombre de la acción.

  • Cada punto de control en cada módulo proporciona diferentes acciones.

Tabla 2. Lista de acciones

Acción

Descripción

@act.allow_submit

Permite que el ticket se envíe para su ejecución.

@act.allow_execute_direct

Permite la ejecución directa en la consola de SQL.

@act.forbid_execute

Prohíbe la ejecución.

@act.mark_risk

Marca un riesgo. El primer parámetro especifica el nivel de riesgo y solo admite los siguientes cuatro valores en inglés en minúsculas (de menor a mayor): low (riesgo bajo), middle (riesgo medio), high (riesgo alto), highest (riesgo crítico). El segundo parámetro es una descripción de la razón del riesgo. Uso: @act.mark_risk 'middle' 'Medium risk: production environment'.

@act.do_not_approve

Especifica el ID de una plantilla de aprobación. Para obtener más información, consulte Set approval workflows.

@act.choose_approve_template

@act.choose_approve_template_with_reason