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.
Pergunta
DaniDBA
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();
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.