Este tema describe las configuraciones básicas, los puntos de control, los factores, las acciones y la biblioteca de plantillas para el diseño de esquemas. También explica cómo modificar la plantilla de aprobación predeterminada y agregar nuevas reglas.
Contexto
Un ticket de diseño de esquemas suele involucrar varias instancias y sigue un proceso estándar: diseñar el esquema en un entorno de prueba y luego publicarlo en un entorno de producción. Por lo tanto, las basic configurations, las design rules y las risk identification rules dentro de las reglas de seguridad para el diseño de esquemas utilizan las reglas de seguridad asociadas con la change baseline database (una base de datos en el entorno de prueba).
Las Design rules incluyen Save and Edit - Check Table Header, Save and Edit - Check Field y Save and Edit - Check Index. En la página de edición de reglas de seguridad, estos tres puntos de control aparecen como pestañas en la sección Checkpoints.
Las Risk identification rules incluyen Control Risks of Creating Tables, Control Risks of Modifying Fields, Control Risks of Modifying Indexes y Control Risks of SQL Executions. Estas también aparecen como pestañas en la sección Checkpoints.
Sin embargo, el proceso de aprobación utiliza las reglas de seguridad de la base de datos en el entorno de producción. Por ejemplo, si un ticket de diseño de esquemas se publica en la base de datos B, el sistema aplica las reglas de seguridad de la instancia B.
Configuraciones básicas
El diseño de esquemas cuenta con varias configuraciones básicas:
-
Habilitar publicación asimétrica: De forma predeterminada, los cambios de diseño de esquemas solo pueden publicarse de manera simétrica; es decir, los cambios en una tabla solo pueden publicarse en una tabla con el mismo nombre en otra base de datos. Al habilitar la publicación asimétrica, puede publicar cambios en cualquier tabla de destino, sin importar su nombre.
AvisoEsta función conlleva riesgos significativos. Habilítela con precaución y únicamente para escenarios específicos.
-
Proceso de desarrollo: Esta es una configuración clave en las reglas de seguridad del diseño de esquemas. Define todas las etapas en el ciclo de vida de un ticket de diseño de esquemas. La siguiente tabla describe estas opciones.
Parámetro
Descripción
Step
Consiste en los nodos Design y Publish.
-
Nodo Design: El nodo Design es el predeterminado y no se puede eliminar. Determina el entorno en el que se diseña la tarea de cambio de esquema.
-
Nodo Publish: Una vez completado el diseño, el proceso avanza a la etapa de publicación para aplicar los cambios. Puede agregar varios nodos de publicación.
Node Name
Nombre personalizado del nodo, con una longitud máxima de 10 caracteres.
Database Environment
Entorno donde se ejecuta el nodo.
Execution Strategy
-
Immediately: La tarea se ejecuta inmediatamente después de su aprobación.
-
Timed: Puede especificar una hora para publicar la tarea. Si la tarea se aprueba antes de la hora especificada, se ejecuta en ese momento. De lo contrario, la tarea se cancela.
Can be Rolled Back
Especifica si la tarea de publicación puede revertirse al nodo Design.
Can be Skipped
Especifica si se puede omitir el paso actual.
Anchor
Marca el punto donde se congela la edición del ticket. Después de que el paso anclado se completa correctamente, el esquema ya no se puede editar y el estado del ticket cambia a Published.
Operation
Puede eliminar un nodo Publish según sus necesidades.
-
Configuración de tipos de campo: Configura los tipos de datos permitidos para la opción Add Field.
Configuración de tipos de índice: Especifica los tipos de datos permitidos en Add Index.
Plantilla de creación de tablas: Configura una plantilla para crear tablas. Las nuevas tablas cargan esta plantilla de forma predeterminada. Esta plantilla es opcional y se puede modificar durante la creación de la tabla.
Prohibir la modificación de tipos de datos de campos originales: Impide modificar los tipos de datos de los campos existentes al cambiar una tabla.
Prohibir la eliminación de campos originales: Especifica si se prohíbe eliminar campos existentes al cambiar una tabla. Esta es una operación de alto riesgo, por lo que se recomienda habilitar esta opción.
Prohibir el cambio de nombre de campos originales: Especifica si se prohíbe cambiar el nombre de campos existentes al modificar una tabla. Cambiar el nombre de campos existentes es una operación de alto riesgo. Se recomienda habilitar esta opción.
Configuración de permisos de conjunto de caracteres de tabla: Configura los conjuntos de caracteres permitidos para nuevas tablas, como utf8 y utf8mb4.
Plantilla de aprobación predeterminada para diseño de esquemas: Si no hay ninguna regla de aprobación configurada para el punto de control Approval Rule Check, los tickets de diseño de esquemas utilizan esta plantilla de aprobación predeterminada. Puede cambiar el proceso de aprobación de la plantilla predeterminada mediante la función Switch Approval Template. Para obtener más información, consulte Modify the default approval template.
Avanzar automáticamente el ticket al estado cerrado tras la publicación: Si se habilita, después de que el nodo que contiene el anchor en el proceso de desarrollo ejecute correctamente un cambio, el sistema avanza automáticamente el ticket al estado cerrado. (El ancla debe estar en el último nodo de publicación del proceso de desarrollo).
Puntos de control
El diseño de esquemas implica dos procesos:
-
Proceso de guardado y edición: Este proceso corresponde a los siguientes tres puntos de control, que verifican secuencialmente las especificaciones para encabezados de tabla, campos e índices.
Save and Edit - Check Table Header
Save and Edit - Check Field
Save and Edit - Check Index
-
Proceso de ejecución de cambios: Este proceso corresponde a los siguientes cinco puntos de control. Los primeros cuatro identifican los riesgos de los cambios en el Lenguaje de Definición de Datos (DDL), y el último especifica el proceso de aprobación para cada riesgo.
Control Risks of Creating Tables
Control Risks of Modifying Fields
Control Risks of Modifying Indexes
Control Risks of SQL Executions
Approval Rule Check
Ambos procesos cuentan con numerosas plantillas de reglas de seguridad integradas que puede usar directamente o personalizar. Para obtener más información, consulte Add a new rule.
Factores y acciones
-
Factor: Un factor es una variable del sistema integrada que proporciona información contextual para las verificaciones de reglas de seguridad, como el tipo de SQL o el número de filas afectadas. Todos los factores comienzan con
@fac.seguido del nombre del factor. Cada módulo proporciona diferentes factores para distintos puntos de control. La siguiente tabla describe los factores disponibles para schema change.Factor
Descripción
@fac.table_kind
Tipo de tabla que se está editando. Valores válidos:
-
new: Una tabla nueva.
-
old: Una tabla existente.
@fac.column_kind
Tipo de campo en el esquema de la tabla. Valores válidos:
-
new: Un campo nuevo.
-
old: Un campo existente.
@fac.xxxx_old
Recupera el valor original de un campo o índice para compararlo.
@fac.column_is_primary
Indica si un campo forma parte de la clave principal. Valores válidos:
-
true: El campo está en la clave principal.
-
false: El campo no está en la clave principal.
@fac.column_type_support_default
Indica si se puede establecer un valor predeterminado para el tipo de datos del campo. Valores válidos:
-
true: Compatible.
-
false: No compatible.
Por ejemplo, el tipo de datos
CHARadmite un valor predeterminado, pero el tipo de datosTEXTno.@fac.index_kind
Tipo de índice en el esquema de la tabla. Valores válidos:
-
new: Un índice nuevo.
-
old: Un índice existente.
@fac.index_column_count
Número de campos en el índice.
@fac.change_type
Tipo de cambio de campo o índice identificado por la base de datos donde se ejecuta la instrucción DDL. Valores válidos:
-
add
-
modify
-
delete
@fac.altered_table_size
Tamaño de la tabla modificada, en MB.
@fac.online_execute
Indica si el cambio se puede ejecutar en línea. Valores válidos:
-
true: ONLINE
-
false: NOT ONLINE
@fac.change_risk_level
Nivel de riesgo del cambio. Valores válidos:
-
high: Riesgo alto
-
medium: Riesgo medio
-
low: Riesgo bajo
@fac.env_type
Tipo de entorno, que es el identificador del entorno, como
DEVoPRODUCT. Para obtener más información sobre los tipos de entorno, consulte Change the environment type of an instance. -
-
Acción: Una acción es un comportamiento que el sistema realiza después de que se cumple una condición
if, como prohibir el envío de un ticket, seleccionar un flujo de trabajo, permitir una ejecución o denegar una ejecución. Estas acciones definen el propósito principal de una regla de seguridad. Todas las acciones comienzan con@act.seguido del nombre de la acción. Cada módulo proporciona diferentes acciones para distintos puntos de control. La siguiente tabla describe las acciones disponibles para schema design.Acciones
Descripción
@act.block_submit
Bloquea el envío y muestra un mensaje de error en la etapa de guardado de la tabla. Uso:
@act.block_submit 'Reason for blocking'.@act.show_warning
Se usa durante la etapa de guardado de la tabla. Muestra un mensaje de advertencia sin bloquear el envío. Uso:
@act.show_warning 'Warning content'.@act.mark_middle_risk
Se usa durante la etapa de identificación de riesgos. Marca el cambio como de riesgo medio. Uso:
@act.mark_middle_risk 'Reason'.@act.mark_high_risk
Se usa durante la etapa de identificación de riesgos. Marca el cambio como de riesgo alto. Uso:
@act.mark_high_risk 'Reason'.@act.forbid_submit_publish
Se usa durante la etapa de configuración del proceso de aprobación. Impide que se ejecute el cambio. Uso:
@act.forbid_submit_publish 'Reason'.@act.do_not_approve
Especifica el ID de una plantilla de aprobación. Para obtener más información, consulte Set the approval process.
@act.choose_approve_template
@act.choose_approve_template_with_reason
Biblioteca de plantillas
Security Rules proporciona numerosas plantillas de reglas que puede habilitar directamente o modificar antes de habilitarlas. La siguiente tabla enumera las plantillas para schema change.
|
Punto de control |
Plantilla |
|
Save and Edit - Check Table Header |
Prohibir el uso de palabras clave como nombre de tabla para una tabla nueva |
|
Limitar la longitud del nombre para una tabla nueva |
|
|
Requerir comentarios para una tabla nueva |
|
|
Requerir que el nombre de una tabla nueva esté en minúsculas |
|
|
Requerir una clave principal (PK) para una tabla nueva |
|
|
Requerir una clave única (PK/UK) para una tabla nueva |
|
|
Verificar el número de índices y advertir al usuario si la cantidad es excesiva |
|
|
Verificar si existen ciertos campos para una tabla nueva |
|
|
Save and Edit - Check Field |
Prohibir el uso de palabras clave como nombre de campo para un campo nuevo |
|
Requerir comentarios para un campo nuevo |
|
|
Especificar distinción entre mayúsculas y minúsculas para el nombre de un campo nuevo |
|
|
Requerir un valor predeterminado al agregar un campo no nulo a una tabla existente |
|
|
Requerir un valor predeterminado al cambiar un campo existente de anulable a no anulable |
|
|
Requerir que un nuevo campo de clave principal sea de tipo entero |
|
|
Requerir que todos los campos de una tabla nueva sean no anulables |
|
|
Limitar la longitud de un campo nuevo de tipo CHAR |
|
|
Limitar la longitud de un campo nuevo de tipo VARCHAR |
|
|
Save and Edit - Check Index |
Prohibir el uso de palabras clave como nombre de índice para un índice nuevo |
|
Especificar distinción entre mayúsculas y minúsculas para el nombre de un índice nuevo |
|
|
Limitar el formato del nombre para un índice UNIQUE nuevo |
|
|
Limitar el formato del nombre para un índice NORMAL nuevo |
|
|
Limitar el formato del nombre para un índice FULLTEXT nuevo |
|
|
Limitar el formato del nombre para un índice SPATIAL nuevo |
|
|
Limitar el número de nuevos campos de clave principal |
|
|
Limitar el número de nuevos campos de índice |
|
|
Control Risks of Creating Tables |
Controlar el número de shards para una tabla lógica |
|
Controlar la clave principal de una tabla |
|
|
Controlar el número total de índices en una tabla |
|
|
Control Risks of Modifying Fields |
Controlar la eliminación de campos |
|
Controlar el tipo de datos de un campo nuevo |
|
|
Controlar el cambio de nombre de campos |
|
|
Controlar la modificación del tipo de datos de un campo |
|
|
Control Risks of Modifying Indexes |
Controlar la eliminación de claves principales |
|
Controlar la eliminación de índices |
|
|
Controlar el cambio de una clave principal a un índice |
|
|
Controlar los cambios en columnas de una clave principal |
|
|
Controlar la modificación de un índice común |
|
|
Controlar el tipo de un índice nuevo |
|
|
Control Risks of SQL Executions |
Controlar riesgos de instancias principales |
|
Controlar el motor de almacenamiento de una tabla |
|
|
Controlar riesgos de bloqueo de tablas o cambios de esquema en tablas grandes |
|
|
Approval Rule Check |
Prohibir la aplicación de cualquier cambio DDL a una base de datos |
|
Prohibir la aplicación de cualquier cambio DDL a una base de datos de producción |
|
|
Configurar cambios DDL sin aprobación para una base de datos de prueba |
|
|
Establecer reglas de aprobación basadas en niveles de riesgo para el entorno de producción |
Modificar la plantilla de aprobación predeterminada
Inicie sesión en DMS 5.0.
-
Mueva el puntero sobre el icono
en la esquina superior izquierda y seleccione .NotaSi utiliza la consola de DMS en modo normal, seleccione en la barra de navegación superior.
En la página Security Rules, busque el conjunto de reglas de destino y haga clic en Edit en la columna Actions.
En el panel de navegación izquierdo de la página Details, haga clic en Schema Design.
En la pestaña Schema Design, haga clic en Basic Configurations.
Busque Default Approval Template for Schema Design y haga clic en Edit en la columna Actions.
En el cuadro de diálogo Edit Configuration Item, haga clic en Switch Approval Template.
-
Busque la plantilla de destino por su Template Name y haga clic en Select en la columna Actions.
NotaTambién puede hacer clic en Reset to No Approval para permitir que los tickets omitan el proceso de aprobación.
Haga clic en Submit.
Agregar una nueva regla
Inicie sesión en DMS 5.0.
-
Mueva el puntero sobre el icono
en la esquina superior izquierda y seleccione .NotaSi utiliza la consola de DMS en modo normal, seleccione en la barra de navegación superior.
En la página Security Rules, busque el conjunto de reglas de destino y haga clic en Edit en la columna Actions.
En el panel de navegación izquierdo de la página Details, haga clic en Schema Design.
En la pestaña Schema Design, haga clic en Add Rule a la derecha de Actions.
-
En el cuadro de diálogo Add Rule - Schema Design, configure los siguientes parámetros.
Parámetro
Descripción
Checkpoint (Obligatorio)
Seleccione un punto de control para la nueva regla. El diseño de esquemas proporciona varios puntos de control. Para obtener más información, consulte Checkpoints.
Template Library (Opcional)
La biblioteca de plantillas ofrece muchas plantillas de reglas. Después de seleccionar un Checkpoint, puede cargar una plantilla de regla desde la Template Library. Para ver una lista de plantillas disponibles, consulte Template library.
Rule Name (Obligatorio)
Nombre personalizado para la regla. Si selecciona una plantilla de regla de la Template Library, este campo se completa automáticamente.
Rule DSL (Obligatorio)
Introduzca el DSL de la regla. Para obtener más información sobre la sintaxis DSL, consulte la documentación. (Este campo se completa automáticamente si selecciona una plantilla de regla en la Template Library.)
Haga clic en Submit.
De forma predeterminada, la nueva regla se encuentra en estado Disabled. Busque la regla y haga clic en Enable en la columna Actions.
En el cuadro de diálogo que aparece, haga clic en OK.