Consulta SQL++ / N1QL

La forma más rápida de identificar PII almacenados en su base de datos: Un ejemplo sencillo usando N1QL, Nodejs y Docker

Una petición frecuente de los clientes es una manera de identificar PII dentro de sus bases de datos. He pensado en mostrar un breve ejemplo de cómo hacerlo.

Historia de usuario: "Quiero identificar números de tarjetas de crédito y de la seguridad social sin cifrar dentro de los documentos para asegurarme de que los desarrolladores no están almacenando cosas que no deberían en la base de datos".

Antecedentes:  N1QL tiene un "tokenizador"a partir de la versión 4.6. Combine esto con funciones regex en N1QL, índices secundarios específicos y disponemos de un potente conjunto de herramientas para identificar patrones dentro de la base de datos.

Ejemplo de solución:  He creado una consulta para identificar números de la seguridad social sin cifrar almacenados en un bucket (el bucket "por defecto" en este caso). Busco cualquier patrón de dígitos que coincida con xxx-xx-xxxx o xxxxxxxxx. La función TOKENS me permite tratar un documento como una matriz de cadenas. Usé la bandera "specials" para decirle a N1QL que mantenga estas cadenas intactas. Si no utilizo esta opción, se eliminarán los espacios y los guiones y se ignorarán los elementos que sigan a estos caracteres. Luego busco cualquier expresión regular que coincida con un elemento dentro de la matriz de tokens.

La identificación de números de tarjetas de crédito sin cifrar almacenados en un cubo utiliza el mismo enfoque:

Para acelerar el tiempo de procesamiento, utilizo índices secundarios optimizados en memoria (MOI) para las consultas anteriores. Cada mutación en Couchbase se envía asíncronamente al proyector del índice. Los MOI tienen la ventaja añadida de actualizar la información contenida en el índice cada 20 ms. Los índices también hacen uso de la tokenización.

...y para tarjetas de crédito no encriptadas

Pruébalo: Docker es mi forma favorita de crear un entorno de desarrollo. Un repositorio fácil de usar para los ejemplos anteriores está en github: n1ql-query-nodejs . Utiliza docker-compose para construir dos servicios:

  1. Un servicio de clúster Couchbase de nodo único.
  2. Un servicio nodejs para aprovisionar el clúster Couchbase con 250.000 perfiles de usuario e índices para varios ejemplos, incluida la búsqueda de PII sin cifrar.
Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Todd Greenstein

Todd Greenstein es Arquitecto de Soluciones en Couchbase. Todd está especializado en diseño de APIs, arquitectura, modelado de datos y desarrollo en nodejs y golang.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.