DaniDBA
Membros-
Total de itens
1 -
Registro em
-
Última visita
Sobre DaniDBA
DaniDBA's Achievements
0
Reputação
-
DaniDBA se registrou na comunidade
-
Olá! Preciso fazer uma rotina para mascaramento de dados no Postgresql a fim de cumprir a lei de proteção aos dados e estou tentando utilizar o recurso Postgresql Anonymizer. Porém, a função que faz o mascaramento está demorando muuuuito a executar, a ponto de cair a conexão e não concluir, como se houvesse bloqueio no banco (mas não há) . Já executei Vaccum e rebuild de índices para garantir mas não adiantou nada. Queria saber se estou fazendo algo errado ou se alguém pode me dar alguma orientação. Essa é a função: create or replace function mascaramento() returns void as $$ declare tables cursor for select nome_tabela,nome_coluna,funcao_mascaramento,mascarar from control_anonymizer order by nome_tabela; begin --create extension if not exists anon cascade; --select anon.mask_init(); for table_record in tables loop if (table_record.mascarar = '1') then execute ' COMMENT ON COLUMN ' || table_record.nome_tabela || '.' ||table_record.nome_coluna ||' IS '' MASKED WITH FUNCTION ' || table_record.funcao_mascaramento || '''' ; else execute ' COMMENT ON COLUMN ' || table_record.nome_tabela || '.' ||table_record.nome_coluna ||' IS ''''' ; end if; end loop; end; $$ language 'plpgsql'; Essa é a tabela onde preencho como quero mascarar: create table public.control_anonymizer ( oid_anon integer not null, nome_tabela character varying(100) , nome_coluna character varying(100) , funcao_mascaramento character varying(100) , mascarar bit , data_cadastro timestamp without time zone, constraint control_anonymizer_pkey primary key (oid_anon) ) with ( oids = false ) Exemplo de preenchimento da tabela: insert into control_anonymizer values (1 ,'clientes','nome','anon.random_last_name()','1','20210314'); insert into control_anonymizer values (2 ,'funcionarios','nome','anon.random_last_name()','1','20210314'); insert into control_anonymizer values (3 ,'fornecedores','email','anon.fake_email()','1','20210314'); insert into control_anonymizer values (4 ,'clientes','telefone','anon.partial(telefone,2,$$******$$,2)','1','20210314'); Quando eu executo a função conforme abaixo demora o dia inteiro e não funciona. select mascaramento();