Autor: Tiago Crespi
Olá, Pessoal! Hoje vamos falar um pouco sobre Mascaramento de dados.
Primeiro vamos conceituar, o que é mascaramento de dados: É uma forma de impedir os seus dados sejam vistos por alguns usuários determinados.
Ou seja, ele é diferente de criptografia de dados, a criptografia é feita nos dados gravados em disco e descriptografada quando o dado é lido, assim se alguém copiar os arquivos de dados do seu banco de dados ele não irá conseguir ler os arquivos por não ter as chaves para descriptografar os dados contidos nos arquivos.
O mascaramento é para impedir que alguém, que tem acesso ao banco, utilize os dados para outro fim que não seja o seu trabalho. Imagine que a sua empresa tenha um Administrador de banco de dados, ele tem que ter acesso ao todo o banco para executar suas funções de DBA, mas ele não precisa ver os dados dos clientes que tem cadastrado no banco. O mascaramento permite que sua empresa tenha este nível de segurança, impedindo que os administradores tenham acesso a dados confidenciais e ainda assim consigam fazer seu trabalho.
Agora vamos mostrar como usar o Data Masking em um banco de dados Azure SQL Database. Como este artigo é sobre mascaramento de dados, não vou mostrar como criar um Azure SQL Database, vamos direto a como configurar o mascaramento de dados.
Na imagem abaixo podemos ver que já temos um SQL Database criado, junto ao seu SQL Server ambos na região Sul do Brasil.
Este recurso está em um tier por DTU básico de até 2Gb, sendo este o tier de custo mais baixo possível neste recurso. E este tier foi escolhido para mostrar que mesmo na versão menor custo podemos ativar o mascaramento de dados.
O DDM (Dynamic Data Masking) pode ser habilitado de duas formas, pelo portal acessando o banco de dados, no menu da esquerda na sessão Security, e então Dynamic Data Masking.
Nesta tela o Azure já terá mapeado as tabelas e os campos do seu banco de dados e listará os campos que devem ser mascarados, claro que isto é uma sugestão, a escolha de quais campos e tabelas deverão ser mascarados é sua. No meu caso, que estou usando o banco de dados de testes que o Azure proporciona, ele me sugeriu mascarar 6 campos de uma tabela com 15 campos.
O Azure te sugere os campos que realmente precisam ser mascarados, como nomes, e-mails, telefones, nomes de usuário, número de documentos, endereços, nome de cidades, enfim todos os campos que possam identificar uma pessoa serão sugeridos para que sejam mascarados.
Na tela abaixo podem ver que temos a lista de sugestões para o mascaramento, inclusive os campos que já estão mascarados.
Para mascarar os dados temos duas formas, pelo próprio portal ou por script, vamos ver ambas as formas.
Pelo portal:
Esta é a forma mais fácil, é só clicar o no botão “Add mask” do campo que deseja mascarar e pronto, o campo irá sair da listagem e ir de campos recomendados e irá para cima na listagem de “Masking Rules”, e após é só salvar. O Azure SQL Server irá aplicar a regra padrão que é mostrar “XXXX” no lugar o texto que esta gravado no banco de dados. Podem ver na imagem abaixo que o campo “First Name” aparece “XXXX” ao invés do nome cadastrado.
Mas se eu usar um usuário com uma outra permissão posso ver os dados sem o mascaramento? Segue o resultado da mesma query com outro usuário:
Por script:
É tão fácil quanto pela tela, a única diferença é que deverá estar conectado no SQL Database por alguma ferramenta, por exemplo o SSMS (SQL Server Management Studio).
Após estar conectado deve-se utilizar o comando “alter table”, indicando a tabela com o Schema, logo após um “alter column” indicando qual é a coluna que será aplicado o Data Masking e, por fim, um “add Masked” com a função de mascaramento.
No comando abaixo foi aplicado o mascaramento na tabela “[SalesLT]. [Customer]”, na coluna “EmailAddress” usando uma função padrão do Azure para mascarar os dados.
Após a execução completa do comando, o campo que os dados foram mascarados aparecerá no Azure como se tivesse sido aplicado pelo portal, isso ajuda a não perder o controle de quais campos o Data Masking foi aplicado, seja pelo portal ou por comando.
E seguindo a regra do Data Masking conforme o usuário os dados serão mostrados mascarados ou não. Podem verificar, na imagem abaixo, que os campos que aparecem como XXXX são os mesmos da imagem acima onde foi aplicado o Data Masking.
Só para complementar, usuários com permissões de Sysadmin, Serveradmin e db_owner podem ver os dados desmascarados, os usuários com permissão somente de leitura lerão os dados mascarados.
Espero que este artigo tenha ajudado e lembrem-se, a segurança dos seus dados e dos dados de seus clientes é muito importante, além de estar previsto na LGPD (Lei Geral de Proteção de Dados).
Até o próximo post, Pessoal! 😊