Automatizar los permisos del catálogo de unidad de Azure Databricks a nivel de esquema

Descargo de responsabilidad: Todas las opiniones expresadas en el blog pertenecen exclusivamente al autor y no necesariamente a su empleador o a cualquier otro grupo o individuo. Este artículo no es una promoción de ninguna plataforma de gestión de nube/datos. Todas las imágenes y fragmentos de código están disponibles públicamente en el sitio web de Azure/Databricks.

En este artículo, proporcionaré el script para automatizar la gestión de permisos en el nivel de esquema del Catálogo Unity.

Privilegios en el nivel de esquema del Catálogo Unity

Unity Catalog privilege model

El modelo de privilegio jerárquico en Catálogo Unity permite a los usuarios aplicar privilegios en cualquier nivel de la jerarquía, y el objeto o los objetos secundarios heredan automáticamente los mismos permisos. Por lo tanto, si se aplica un permiso en el nivel de esquema, automáticamente se aplicará a todas las tablas, vistas, volúmenes y funciones dentro del esquema.

En el Catálogo Unity (Databricks), los permisos en el nivel de esquema se aplican cuando se desea controlar el acceso a un conjunto de tablas y vistas dentro de un esquema específico. Los permisos a nivel de esquema se aplican típicamente en los siguientes escenarios:

  1. Conceder acceso a grupos de objetos: Si desea gestionar permisos para múltiples tablas y vistas de manera conjunta, es eficiente aplicar permisos en el nivel de esquema en lugar de individualmente para cada tabla o vista. Esto le permite controlar el acceso a todos los objetos dentro de ese esquema simultáneamente.
  2. Control organizacional: Cuando diferentes equipos o departamentos dentro de una organización necesitan acceso a conjuntos de datos específicos, que se almacenan bajo esquemas separados. Aplicar permisos a nivel de esquema te permite otorgar o restringir acceso a todos los objetos relevantes para un equipo dentro de ese esquema.
  3. Administración de permisos consistente: Para entornos donde nuevos objetos (tablas/vistas) se agregan con frecuencia a un esquema, establecer permisos a nivel de esquema garantiza que los nuevos objetos hereden los permisos automáticamente, reduciendo la necesidad de actualizaciones manuales de permisos.
  4. Mantenimiento de la seguridad de datos: Cuando deseas hacer cumplir controles de acceso sobre una categoría de conjunto de datos en particular (por ejemplo, datos financieros, datos de recursos humanos) que están organizados lógicamente bajo un esquema. Al establecer permisos a nivel de esquema, mantienes la seguridad de datos al mismo tiempo que simplificas la administración.

Script de automatización

Prerrequisitos

  • El Catálogo de Unity ya está configurado.
  • El/los principal(es) están asociados con el espacio de trabajo de Databricks.
  • El usuario que ejecuta el script de permisos tiene los permisos adecuados en el esquema y el catálogo.

Paso 1: Crear un Cuaderno y Declarar las Variables

Crea un cuaderno en el espacio de trabajo de Databricks. Para crear un cuaderno en tu espacio de trabajo, haz clic en el “+” Nuevo en la barra lateral, luego elige Cuaderno.

Copia y pega el fragmento de código a continuación en la celda del cuaderno y ejecuta la celda.

Python

 

Paso 2: Configurar el Catálogo y el Esquema

Copia, pega y ejecuta el bloque de código a continuación en una celda nueva o existente y ejecuta la celda.

Python

 

Paso 3: Recorrer los Principales y Privilegios y Aplicar el Permiso en el Catálogo y el Esquema

Copia, pega y ejecuta el bloque de código a continuación en una celda nueva o existente, luego ejecuta la celda para aplicar los permisos.

Python

 

Validación

Puedes validar los privilegios abriendo la interfaz de usuario de Databricks y navegando hasta Catálogo en el Explorador de Datos. Una vez que aparezca el catálogo en la sección de Datos, haz clic en el catálogo, luego selecciona el esquema donde has aplicado los permisos y ve a la pestaña Permisos. Ahora puedes ver todos los privilegios aplicados al esquema.

Permissions applied in the default schema inside the main catalog available out of the box

También puedes ejecutar el script SQL a continuación en un notebook para mostrar todos los permisos para un esquema como parte de tu validación.

SQL

 

Conclusión

Automatizar la gestión de privilegios en el Catálogo Unity de Databricks a nivel de esquema ayuda a garantizar un control de acceso consistente y eficiente para el grupo de objetos (por ejemplo, tablas, vistas, funciones y volúmenes) en el catálogo. El código proporcionado demuestra una forma práctica de asignar privilegios a nivel de esquema, facilitando la gestión de permisos entre principales (por ejemplo, usuarios y grupos). Este enfoque reduce las tareas de gestión y la posibilidad de errores manuales al agrupar tablas y vistas dentro de un esquema y aplicar permisos consistentes para todo el esquema.

Source:
https://dzone.com/articles/automate-databricks-unity-catalog-permissions-at-schema-level