Saltar al contenido

Seguridad

Menú

Puedes leer sin crear un espacio. Créalo solo cuando quieras guardar.

Guardar 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.

17 min aprox.

Detalles

Unity Catalog avanzado y privacidad

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

Reto observable

Protege un dominio sensible con mínimo privilegio y políticas centralizadas, y demuestra allow, masked/filtered, deny, retención y auditoría.

Al terminar podrás
  • Diseñar herencia y ownership
  • Aplicar row filters, masks y ABAC
  • Implementar retención, anonimización y purga
Prerrequisitos
m29
Última revisión
25 ago 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.

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.

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.

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

Profundiza

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.
Resumen

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.

Vista de lectura · sin ejecución

Startup ERP Data Lakehouse

Startup ERP Data Lakehouse · commit ba6c71b

notebooks/01_bronze_generate_startup_erp_data.py

Módulo 30

Contenido del módulo