Ir para conteúdo
Fórum Script Brasil

DaniDBA

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre DaniDBA

DaniDBA's Achievements

0

Reputação

  1. 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();
×
×
  • Criar Novo...