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?
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:
./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.
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?
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.
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.
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.