Consulta SQL++ / N1QL

A maneira mais rápida de identificar PII armazenadas em seu banco de dados: Um exemplo simples usando N1QL, Nodejs e Docker

Uma solicitação frequente dos clientes é uma maneira de identificar PII em seus bancos de dados. Pensei em mostrar um breve exemplo de como isso pode ser feito.

História do usuário: "Quero identificar números de cartão de crédito não criptografados e números de previdência social em documentos para que eu possa garantir que os desenvolvedores não estejam armazenando coisas que não deveriam no banco de dados."

Histórico:  N1QL tem um "tokenizador" a partir da versão 4.6. Combine isso com funções regex no N1QL, índices secundários específicos e temos um conjunto de ferramentas poderoso à nossa disposição para identificar padrões no banco de dados.

Exemplo de solução:  Criei uma consulta para identificar números de previdência social não criptografados armazenados em um compartimento (o compartimento "padrão", neste caso). Estou procurando qualquer padrão de dígitos que corresponda a xxx-xx-xxxx ou xxxxxxxxx. A função TOKENS me permite tratar um documento como uma matriz de cadeias de caracteres. Usei o sinalizador "specials" para dizer ao N1QL para manter essas cadeias intactas. Se eu não usasse esse sinalizador, ele removeria os espaços e traços e ignoraria os itens após esses caracteres. Em seguida, procuro qualquer expressão regular que corresponda a um elemento dentro da matriz de tokens.

A identificação de números de cartão de crédito não criptografados armazenados em um bucket usa a mesma abordagem:

Para acelerar meu tempo de processamento, uso índices secundários otimizados para memória (MOI) para as consultas acima. Toda mutação no Couchbase é enviada de forma assíncrona para o projetor do índice. Os MOIs têm o benefício adicional de atualizar as informações contidas no índice a cada 20 ms. Os índices também fazem uso da tokenização.

...e para cartões de crédito não criptografados

Experimente: O Docker é minha maneira favorita de criar um ambiente de desenvolvimento. Um repositório fácil de usar para os exemplos acima está no github: n1ql-query-nodejs . Ele usa o docker-compose para criar dois serviços:

  1. Um serviço de cluster do Couchbase de nó único.
  2. Um serviço nodejs para provisionar o cluster do Couchbase com 250.000 perfis de usuários e índices para vários exemplos, incluindo a localização de PII não criptografadas.
Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Todd Greenstein

Todd Greenstein é arquiteto de soluções na Couchbase. Todd é especializado em design de API, arquitetura, modelagem de dados, desenvolvimento em nodejs e golang.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.