Autor Tema: Anonimización de base de datos  (Leído 160 veces)

0 Usuarios y 1 Visitante están viendo este tema.

faraya

  • General Guarani
  • *
  • Mensajes: 191
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de la Patagonia Austral
  • Nombre y apellido: Fernando Daniel Araya
  • Sistema: SIU-GUARANI
  • Teléfono laboral: 0297-4854888 int 114
Anonimización de base de datos
« on: Julio 14, 2022, 11:17:15 am »
Buen día!
Estoy probando anonimizar la base de datos del sistema Kolla, para ello estoy siguiendo la guía https://documentacion.siu.edu.ar/wiki/SIU-Kolla/Version_4.7.0/anonimizador y si bien ya instale el paquete libpq-dev. Ahora cuando ejecuto echo Hola | ./mask me da el siguiente error:
bash: ./mask: No existe el fichero o el directorio
Mi consulta es en que directorio tengo que estar parado para ejecutar el comando?

Saludos Fernando.

Rodrigo Miranda [SIU]

  • Moderador Global
  • *****
  • Mensajes: 201
    • Ver Perfil
    • Email
  • Institución: SIU
Re:Anonimización de base de datos
« Respuesta #1 on: Julio 14, 2022, 12:27:19 pm »
Hola Fernando, te comento que la documentación está desactualizada.

Debes posicionarte en el directorio:

Código: [Seleccionar]
php/3ros/anonimizador
Luego configurar las variables de entorno que están en el archivo env_local.sh y darle permisos de ejecución. Ejecutas ese archivo

Código: [Seleccionar]
.  env_local.sh
Y recién ahí haces la prueba:

Código: [Seleccionar]
echo Hola | ./mask
Si todo esto funciona correctamente, entonces continuás instalando las funciones de anonimización:

Código: [Seleccionar]
./install_mask.sh server server_port nombre_de_base
Una vez hecho esto ya podés hacer un backup de la base:

Código: [Seleccionar]
pg_dump -h HOST -U USER -d BASE_NOMBRE -n SCHEMA | ./mask > BASE_ANON.sql
Te comento que estamos trabajando en una mejora al proceso de anonimización de bases para que este comando esté disponible directamente en el instalador del proyecto con lo cuál va a ser mucho más simple. Con un comando similar a este:

Código: [Seleccionar]
./bin/instalador base:anonimizar
Ya tendrías una base clonada y lista para exportar. Como te decía eso probablemente salga en la nueva versión de Kolla.

Cualquier duda la seguimos.



faraya

  • General Guarani
  • *
  • Mensajes: 191
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de la Patagonia Austral
  • Nombre y apellido: Fernando Daniel Araya
  • Sistema: SIU-GUARANI
  • Teléfono laboral: 0297-4854888 int 114
Re:Anonimización de base de datos
« Respuesta #2 on: Julio 15, 2022, 09:27:20 am »
Buen día Rodrigo!
Estoy siguiendo los pasos que sugeriste y cuando ejecuto ./install_mask.sh server server_port nombre_de_base, me sale un error de codificación después parece seguir normalmente.

Procesando create_tables_mask.sql
Contraseña para usuario postgres:
psql:sql/create_tables_mask.sql:4: NOTICE:  el esquema «mask» no existe, omitiendo
DROP SCHEMA
CREATE SCHEMA
CREATE TABLE
CREATE TABLE
CREATE TABLE
Procesando sql/mask_firstnames.sql
Contraseña para usuario postgres:
psql:sql/mask_firstnames.sql:502: ERROR:  secuencia de bytes no válida para codificación «UTF8»: 0xd1 0x41
CONTEXTO:  COPY firstnames, línea 95
Procesando mask_lastnames.sql
Contraseña para usuario postgres:
COPY 1000
Procesando proc_init_shuffle_dni.sql
Contraseña para usuario postgres:
CREATE FUNCTION
Procesando sql/proc_char_to_md5.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_char_to_sha256.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_get_cuilt.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_hash_mail.sql
Contraseña para usuario postgres:
CREATE FUNCTION
Procesando sql/proc_rand_apellido.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_rand_apyno.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_rand_dni.sql
Contraseña para usuario postgres:
CREATE FUNCTION
Procesando sql/proc_rand_nombre.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_hash_nombre.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_rand_fecha.sql
Contraseña para usuario postgres:
CREATE FUNCTION
Procesando sql/proc_set_text.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
psql:sql/proc_set_text.sql:44: NOTICE:  la secuencia «maskseq1» no existe, omitiendo
DROP SEQUENCE
CREATE SEQUENCE
psql:sql/proc_set_text.sql:46: NOTICE:  la secuencia «maskseq2» no existe, omitiendo
DROP SEQUENCE
CREATE SEQUENCE
psql:sql/proc_set_text.sql:48: NOTICE:  la secuencia «maskseq3» no existe, omitiendo
DROP SEQUENCE
CREATE SEQUENCE
psql:sql/proc_set_text.sql:50: NOTICE:  la secuencia «maskseq4» no existe, omitiendo
DROP SEQUENCE
CREATE SEQUENCE
psql:sql/proc_set_text.sql:52: NOTICE:  la secuencia «maskseq5» no existe, omitiendo
DROP SEQUENCE
CREATE SEQUENCE
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_shuffle_dni.sql
Contraseña para usuario postgres:
CREATE FUNCTION
Procesando sql/proc_shuffle_cuilt.sql
Contraseña para usuario postgres:
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
Procesando sql/proc_get_username.sql
Contraseña para usuario postgres:
CREATE SEQUENCE
CREATE FUNCTION
Procesando sql/proc_rand_importe.sql
Contraseña para usuario postgres:
CREATE FUNCTION
Procesando sql/mask_generate_data.sql
Contraseña para usuario postgres:
 init_shuffle_dni
------------------
              211
(1 fila)

Quiero saber si esto impacta en el proceso de anonimización?

faraya

  • General Guarani
  • *
  • Mensajes: 191
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de la Patagonia Austral
  • Nombre y apellido: Fernando Daniel Araya
  • Sistema: SIU-GUARANI
  • Teléfono laboral: 0297-4854888 int 114
Re:Anonimización de base de datos
« Respuesta #3 on: Julio 15, 2022, 10:15:31 am »
Luego ejecuto pg_dump -h HOST -U USER -d BASE_NOMBRE -n SCHEMA | ./mask > BASE_ANON.sql, me crea la base, la restauro en postgres y luego modifico el bases.ini para que apunte a la base anonimizada.
Al ingresar al sistema me sale el siguiente error:
SQLSTATE[3F000]: Invalid schema name: 7 ERROR: no existe el esquema «toba_kolla_logs»
Adjunto log de postgresql.

Rodrigo Miranda [SIU]

  • Moderador Global
  • *****
  • Mensajes: 201
    • Ver Perfil
    • Email
  • Institución: SIU
Re:Anonimización de base de datos
« Respuesta #4 on: Julio 15, 2022, 10:21:46 am »
Hola Fernando, el error de codificación se debe a que en el archivo

Código: [Seleccionar]
sql/mask_firstnames.sql
hay una secuencia de caracteres no válido. Borrá la línea 1254 de ese archivo

Código: [Seleccionar]
95 I�AKY M
y corré nuevamente

Código: [Seleccionar]
./install_mask.sh server server_port nombre_de_base
Con respecto al error, deberías ejecutar el dump sin el parámetro -n para que dumpee todos los schemas de la base.

Rodrigo Miranda [SIU]

  • Moderador Global
  • *****
  • Mensajes: 201
    • Ver Perfil
    • Email
  • Institución: SIU
Re:Anonimización de base de datos
« Respuesta #5 on: Julio 15, 2022, 10:33:53 am »
Vale aclarar lo siguiente:
  • Este proceso fue pensado para que las instituciones pudieran enviarnos un dump con datos anonimizados para análisis de errores.
  • El proceso de anonimización que figura en la documentación sólo anonimiza datos de personas en la tabla kolla.sge_encuestado y no las de apex_usuario que es la tabla donde Toba guarda la info de usuarios.
  • La tabla sge_encuestado guarda conexión con apex_usuario por medio del campo usuario, y este campo se anonimiza sólo en sge_encuestado. Por lo tanto si intentás navegar un kolla con una base anonimizada, no vas a poder listar los usuarios aún cuando estén en la base.

Contános cuál es el motivo por el cuál necesitas anonimizar para ver si podemos asesorarte mejor.

faraya

  • General Guarani
  • *
  • Mensajes: 191
    • Ver Perfil
    • Email
  • Institución: Universidad Nacional de la Patagonia Austral
  • Nombre y apellido: Fernando Daniel Araya
  • Sistema: SIU-GUARANI
  • Teléfono laboral: 0297-4854888 int 114
Re:Anonimización de base de datos
« Respuesta #6 on: Julio 15, 2022, 01:19:49 pm »
Hola Rodrigo! Estamos probando anonimizar la base para trabajar con la misma cuando realizamos capacitaciones y no queremos que se vean datos de los usuarios reales.
Probé con los pasos que me pasaste y algunos de la guía de Documentación-SIU y pude anonimizar la base correctamente, te adjunto el documento con los pasos realizados por si les sirve para actualizar la guía de Documentación-SIU.

Rodrigo Miranda [SIU]

  • Moderador Global
  • *****
  • Mensajes: 201
    • Ver Perfil
    • Email
  • Institución: SIU
Re:Anonimización de base de datos
« Respuesta #7 on: Julio 15, 2022, 01:58:04 pm »
Bárbaro Fernando. Gracias!.