Blog Navicat

Enmascaramiento de datos en Navicat 18: Entornos de desarrollo y pruebas más seguros Aug 31, 2026 by Robert Gravelle

Todo equipo de bases de datos acaba enfrentándose al mismo problema: sus mejores datos de prueba son sus datos reales, pero utilizarlos fuera del entorno de producción es una pesadilla de cumplimiento normativo a punto de estallar. A las normativas como el RGPD, HIPAA y PCI-DSS no les importa que "solo estuviera haciendo pruebas"; si el portátil de un desarrollador o un servidor de preproducción (staging) filtra nombres de clientes, correos electrónicos o datos de pago reales, se trata de una brecha de seguridad. Navicat 18 aborda este problema de frente con el Enmascaramiento de datos (Data Masking), una nueva función diseñada para transformar los registros de producción confidenciales en datos simulados, seguros y realistas, de modo que sus equipos de desarrollo, pruebas y control de calidad (QA) puedan seguir trabajando sin ningún riesgo.

Por qué el enmascaramiento es mejor que eliminar o falsear datos

Eliminar por completo las columnas con datos confidenciales o sustituirlas por valores predeterminados (placeholders) evidentemente falsos (test1, test2, xxxxx) a menudo rompe los propios flujos de trabajo que se intentan probar, ya que las consultas que dependen de formatos realistas, restricciones de unicidad o integridad referencial pueden comportarse de forma distinta frente a los datos basura. El enmascaramiento soluciona esto preservando la estructura y la usabilidad de sus datos, al tiempo que elimina cualquier elemento que pueda identificar a una persona real.

Navicat 18 es compatible con cinco técnicas de enmascaramiento estándar del sector:

  • Sustitución (Substitution): intercambia valores reales por otros realistas pero ficticios (p. ej., un nombre real sustituido por un nombre diferente y verosímil).
  • Variación (Variance): desplaza los valores numéricos o de fecha mediante un ajuste aleatorio, manteniendo intactas las tendencias sin exponer las cifras exactas.
  • Mezcla aleatoria (Shuffling): reordena aleatoriamente los valores dentro de una columna, por lo que los datos son reales pero ya no están vinculados a la fila correcta.
  • Hashing: convierte los valores en una cadena de texto fija e irreversible. Es muy útil cuando se necesita consistencia (la misma entrada siempre genera el mismo hash) sin ningún parecido con el valor original.
  • Anulación (Nulling): simplemente deja un campo totalmente en blanco o nulo. Es ideal para aquellos datos que no tienen ningún caso de uso fuera del entorno de producción.

La técnica que decida utilizar dependerá de lo que requiera la prueba en las fases posteriores (downstream); el Hashing es excelente para los valores en los que necesita hacer un JOIN o buscar coincidencias, mientras que la Sustitución mantiene la legibilidad para el personal de QA que revisa visualmente los datos.

Enmascaramiento de datos en Navicat 18: Un recorrido rápido

La función de Enmascaramiento de datos está disponible en las ediciones Enterprise y Standard, y funciona con bases de datos MySQL, Oracle, PostgreSQL, SQLite, SQL Server, MariaDB, MongoDB y Snowflake. A continuación, le mostramos cómo convertir varias columnas de datos reales de clientes en datos simulados seguros y realistas (mock data):

  • En la ventana principal, seleccione Herramientas -> Enmascaramiento de datos (Tools -> Data Masking) en la barra de herramientas.

    data_masking_command (68K)

  • Esto iniciará el asistente de Enmascaramiento de datos, el cual nos guiará a través del proceso.

    En la primera pantalla, podemos aplicar el enmascaramiento a nuestro flujo de trabajo transfiriendo los datos enmascarados a otra base de datos (por defecto) o aplicar el enmascaramiento a las tablas ya existentes. Aceptaremos la opción por defecto.

    data_masking_dialog_masking_strategy (49K)

  • A continuación, es el momento de seleccionar las bases de datos de origen y destino. Puesto que en la pantalla anterior optamos por transferir los datos enmascarados a otra base de datos, tenemos la opción de elegir una base de datos o de exportar el código SQL a un archivo. Haremos esto último y llamaremos a nuestro archivo "customer_test". Es una excelente elección si queremos utilizar los mismos datos de prueba en varias bases de datos.

    data_masking_dialog_target (81K)

  • En la siguiente pantalla es donde podemos seleccionar qué tablas y filas queremos enmascarar. Elegiremos la tabla de clientes (customer). (Tenga en cuenta que, para todas las bases de datos excepto MongoDB, realizar el enmascaramiento de datos requiere que la tabla tenga una clave primaria/Primary Key). Existen dos modos de transferencia (Transfer Modes) principales disponibles: "Automático" (Auto) y "Avanzado" (Advanced). El modo "Auto" enmascara todas las filas y mantiene intactos los nombres de los campos, mientras que la selección de la opción "Advanced" nos otorga un control total sobre el nombre de la tabla de destino, los nombres de los campos, así como qué filas se van a procesar. Lo mantendremos todo igual, a excepción del conjunto de registros (recordset). Aquí, limitaremos los registros a los diez primeros customer_id. Para ello:
    • Seleccione la opción "Conjuntos de registros personalizados" (Custom recordsets). Esto situará el cursor en una nueva fila vacía en la lista de Recordsets.
    • Al hacer clic en el botón de puntos suspensivos [...] a la derecha del cuadro de texto, se abre el cuadro de diálogo de Filtro (Filter).
    • Allí, haga clic en el signo + para añadir una nueva condición. Probablemente lo reconocerá, ya que funciona exactamente igual que la cláusula WHERE del Generador visual de consultas (Visual Query Builder).

      filter_dialog (13K)

    • Podemos ver el código SQL generado haciendo clic en el botón de Vista previa de SQL (SQL Preview).

      sql_preview (50K)

    Aquí se muestra la pantalla de Objetos de base de datos (Database Objects) completada:

    data_masking_database_objects (160K)
  • Ahora seleccionaremos qué campos deseamos enmascarar. Vamos a elegir store_id, last_name, email y create_date.

    fields_for_data_masking (87K)

  • En la siguiente pantalla es donde le indicaremos a Navicat exactamente cómo enmascarar cada campo. Vamos a repasarlos uno por uno:

    La columna store_id

    Al ser un campo numérico, store_id nos ofrece muchas opciones de enmascaramiento. Elijamos la Mezcla aleatoria (Shuffling) para la técnica de enmascaramiento de datos. Esto asignará identificadores válidos a cada fila, pero en un orden diferente.

    store_id_masking (136K)

    Podemos ver el resultado en la parte inferior de la pantalla.

    La columna last_name

    Para el campo last_name, utilizaremos la Sustitución (Substitution) como técnica de enmascaramiento de datos. También hay una serie de categorías para elegir, desde opciones genéricas hasta otras más especializadas. "Nombre" (Name) funcionará perfectamente para nuestros propósitos.

    También podemos Preservar (Preserve) una porción del valor original y enmascarar el resto, o bien Reemplazar (Replace) con un valor falso. Elegiremos la primera opción para que todas las letras de los apellidos, excepto la primera, queden enmascaradas con asteriscos (*).

    last_name_masking (169K)

    La columna email

    Los correos electrónicos tienen su propia categoría, lo que nos permite aplicar una máscara diferente a las porciones de nombre de usuario y dominio. En el caso del nombre de dominio, Navicat proporciona una lista personalizable de posibles candidatos.

    email_masking (154K)

    La columna create_date

    Las fechas y horas ofrecen muchas posibilidades de enmascaramiento. Por ejemplo, podemos convertir un tipo DateTime a Date, modificar valores o sustituirlos por alternativas simuladas realistas.

    create_date_masking (172K)
  • El Resumen (Summary) nos ofrece una última oportunidad para revisar las operaciones de enmascaramiento antes de iniciar el proceso.

    summary_screen (117K)

  • Navicat nos mostrará un desglose completo de las acciones que está llevando a cabo.

    process_output (80K)

  • Tras cerrar el cuadro de diálogo, podemos ver el archivo de salida en Navicat mediante el comando Archivo -> Abrir archivo -> Consulta... (File -> Open File -> Query...).

    customer_test_file (191K)

Dado que todo el proceso se ejecuta de forma interna en Navicat, no hay necesidad de exportar datos a una herramienta o script externo: puede enmascarar una base de datos entera en cuestión de minutos, directamente en el entorno donde ya está trabajando.

En resumen

El enmascaramiento de datos cierra una brecha real para los equipos que hacen malabares entre los requisitos de cumplimiento normativo y la necesidad práctica de contar con datos de prueba realistas. Combinado con el amplio conjunto de herramientas de Inteligencia Artificial (IA) de Navicat 18, convierte lo que solía ser un proceso manual y propenso a errores en una tarea de un par de clics. Si su equipo maneja datos regulados en entornos de desarrollo o pruebas, ¡esta es una función que merece la pena probar para cuando actualice su versión!

Compartir
Archivos del Blog