Anonimizando base MySQL com Python

Henrique Lopes
Accenture Digital Product Dev
2 min readMar 17, 2019

--

Ou como contribuímos com o mysql-anonymous para nos ajudar nisso

Assim como eu, você já deve ter passado por situações em que você precisava de uma base dados para subir o seu projeto similar ao ambiente de produção, localmente. Certo? O problema de gerar uma réplica do banco de dados em produção para ser executado localmente é bem tranquilo de resolver. O que é um pouco mais complexo é gerar uma base sem as informações sigilosas dos clientes, o que põe mais um pontinho no grau de complexidade. Se você tiver que seguir um compliance, então… mais um grau a ser respeitado.

Baseado nessas premissas que existiam, o time do qual eu fazia parte começou uma pesquisa antes de sair criando qualquer coisa. E chegamos ao mysql-anonymous, simples e rápido de utilizar. Bastava apenas configurar um YAML e nós já teríamos o dump que precisávamos, sem dependência externa, sem precisar se conectar ao banco e nem à internet para gerar o SQL. O único problema é que o projeto não recebia nenhuma atualização desde 2015, e não tinha nenhum teste para validar o processo de construção.

Como renasce uma fênix

O que eu acho muito legal de trabalhar com open source é que você pode fazer o seu fork e dar vida aquilo que ainda é funcional, mas precisa de alguém para cuidar.

O mysql-anonymous ganhou uma segunda oportunidade, agora com toda uma cobertura de teste, continuous integration, coverage e requires para garantir que todo o package seja funcional. Além de adicionar tudo isso, ainda colocamos algumas features legais que não existiam antes. Ele ainda não está no pypi, é o nosso próximo passo.

Quer ver como ficou?
Para instalar basta você executar o comando abaixo:

pip install https://github.com/riquellopes/mysql-anonymous/tarball/master

Como gerar seu primeiro dump

Após instalar o seu mysql-anonymous, se você já quiser ver um exemplo de dump sendo gerado basta digitar o comando anonymize -sample-one e você terá um dump como o que você vai ver abaixo, logo após o YML que deu origem a ele:

Quando você estiver preparado para gerar o seu próprio YML, basta executar o comando a baixo:

$ anonymize -y file_name.yml

Na documentação você pode encontrar todos os tipos de anonimização, mas vou deixar aqui os que adicionamos, uma vez que são muito específicos do nosso país:

Ajuda é sempre bem-vinda

Se você nunca colaborou com um projeto open source, essa é a sua oportunidade! Entra, faz um fork, propõe melhorias, aumenta a cobertura de teste ou qualquer sugestão. Sempre existe algo a melhorar! Curtiu nossa contribuição, tem mais a fazer ou quer deixar sua opinião sobre o assunto? Deixe um comentário.

Até a próxima!

--

--

Henrique Lopes
Accenture Digital Product Dev

Software developer who likes to solve software problems using an old technique, the conversation. http://henriquelopes.com.br