Políticas de seguridad que ocultan o enmascaran selectivamente columnas con datos confidenciales (como PII o tarjetas) según los privilegios del usuario.
Explicación y Contexto Conceptual
Column-Level Security (Seguridad a Nivel de Columna) y Dynamic Data Masking (Enmascaramiento Dinámico de Datos) resuelven la necesidad de permitir que múltiples equipos consulten la misma tabla de datos sin exponer información confidencial innecesaria.
En una tabla analítica de clientes (`dim_customers`), existen campos no confidenciales (país, fecha de registro, plan contratado) y campos altamente sensibles (número de tarjeta de crédito, número de teléfono, dirección física, email).
Con CLS y políticas de enmascaramiento:
- Un agente de soporte o un oficial de cumplimiento legal ve: `email = [email protected]`.
- Un analista de marketing o un modelo de dbt ve el campo enmascarado en tiempo de consulta: `email = j***z@*******.com` o una cadena hash irreversible.
La lógica se ejecuta en el motor del Data Warehouse sin necesidad de duplicar tablas ni crear vistas adicionales para cada departamento.
Ejemplo en la Práctica
Una agencia externa consulta la tabla de conversiones en BigQuery pero la columna `phone_number` aparece enmascarada como `+34-XXX-XX-12` por políticas de seguridad.