Saltar al contenido
Lakehouse LabLakehouse LabPreparación Databricks Data Engineer
Módulo 30 · Lección

Row filters y column masks

Contenido abierto

Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.

Lección 3 de 5

Row filters y column masks

Aplica row filters y column masks con funciones simples, deterministas y auditables, entendiendo su impacto en optimización e interoperabilidad.

Duración
17 min aprox.
Objetivo
Aplica row filters y column masks con funciones simples, deterministas y auditables, entendiendo su impacto en optimización e interoperabilidad.
Siguiente paso
Continuar con la siguiente lección
Ver detalles del módulo

Unity Catalog avanzado y privacidad

Aplica controles centralizados a datos sensibles y demuestra cumplimiento mediante auditoría.

Al terminar podrás
  • Diseñar herencia y ownership
  • Aplicar row filters, masks y ABAC
  • Implementar retención, anonimización y purga
Ver fuentes y revisión

Metadatos editoriales

Última revisión
21 jul 2026
Nivel
Professional
Ruta relacionada
delivery
Dominios blueprint
Data Security and Compliance · Data Governance
Estado
Revisión editorial interna
Fuentes principales
Access control in Unity Catalog · Attribute-based access control in Unity Catalog
Reportar un error
03
Operación

Row filters y column masks

Aplica row filters y column masks con funciones simples, deterministas y auditables, entendiendo su impacto en optimización e interoperabilidad.

Mostrar prerrequisitos
Dificultad
Professional
Prerrequisitos
m29
Reportar un error en esta lección

Un row filter devuelve boolean y elimina filas que el usuario no debe ver; una column mask devuelve el valor original o transformado con un tipo compatible. Pueden asignarse directamente a una tabla mediante UDFs SQL o centralizarse con ABAC. La política se evalúa en query time y la seguridad prima sobre optimizaciones que pudieran filtrar información.

Mantén UDFs simples: evita agregaciones, ventanas y lógica no determinista que limite `MERGE` o pushdown. Prueba cada grupo con usuarios representativos, incluyendo administradores exentos y service principals. Acceso por path y ciertos clientes externos no soportan tablas con políticas; inventaría interoperabilidad y crea una vista o share seguro cuando proceda.

Modelo mental

Row filters y column masks son transformaciones de seguridad insertadas en la consulta. Un row filter decide si cada fila puede atravesar; una mask sustituye el valor visible de una columna y debe devolver un tipo compatible. Pueden asignarse manualmente a una tabla o centralizarse mediante ABAC, opción recomendada para reglas repetidas. Como el motor debe impedir inferencias sobre valores protegidos, prioriza seguridad sobre ciertas optimizaciones, y funciones complejas reducen pushdown o rendimiento. Una máscara no cifra el almacenamiento ni borra el dato; controla la vista del usuario en consultas compatibles. Las claves de join, particiones y columnas usadas en la policy merecen pruebas especiales por semántica, rendimiento y limitaciones de DML.

Row filter

Función de seguridad evaluada en consulta que devuelve verdadero únicamente para las filas visibles por la identidad actual.

Implementa segmentación regional, departamental o por tenant sin crear copias físicas separadas de cada conjunto.
Column mask

Función que sustituye dinámicamente el valor mostrado de una columna mientras conserva un tipo compatible con su contrato.

Permite compartir estructura y datos no sensibles sin exponer el valor original a lectores no autorizados.
Secure optimization

Principio por el que el motor limita transformaciones del plan si podrían revelar información protegida por filtros o máscaras.

Explica por qué una policy correcta puede cambiar pushdown o rendimiento y exige medición específica.
SQLFiltro regional y mask de email por tabla
CREATE OR REPLACE FUNCTION prod.governance.region_filter(region STRING)
RETURN IF(is_account_group_member('finance_global'), TRUE, region = 'EU');

CREATE OR REPLACE FUNCTION prod.governance.mask_email(email STRING)
RETURN IF(
  is_account_group_member('pii_readers'),
  email,
  CONCAT('***@', element_at(split(email, '@'), -1))
);

ALTER TABLE prod.sales.customers
SET ROW FILTER prod.governance.region_filter ON (region);

ALTER TABLE prod.sales.customers
ALTER COLUMN email SET MASK prod.governance.mask_email;

El filtro fijo a EU es un ejemplo de laboratorio; en producción mapea identidad a región mediante una tabla de autorización gobernada.

Puntos clave

  • Row filter controla filas; column mask transforma valores visibles.
  • El tipo de la mask debe ser compatible con la columna.
  • Políticas complejas pueden afectar DML, pushdown y clientes externos.

Evita

  • Implementar una mask que cambia STRING por un tipo incompatible.
  • Usar una UDF no determinista o con subconsultas complejas y bloquear DML necesario.

Recuerdo activo

¿Qué ocurre con una fila si el row filter devuelve FALSE?

Borrador privado · solo en este navegador
5 lecciones pendientes

Vista de lectura · sin ejecución

Startup ERP Data Lakehouse

Startup ERP Data Lakehouse · commit ba6c71b

notebooks/01_bronze_generate_startup_erp_data.py