Estas prácticas recomendadas reflejan las recomendaciones que comparte un equipo multifuncional de Lookers experimentados. Estas estadísticas provienen de años de experiencia trabajando con clientes de Looker, desde la implementación hasta el éxito a largo plazo. Las prácticas se escribieron para funcionar en la mayoría de los casos y usuarios, pero, como siempre, usa el mejor criterio cuando las implementes.
En esta página, se proporciona a los administradores de instancias de Looker un ejemplo guiado para configurar controles de acceso al contenido. Analizaremos el proceso de implementación, comenzando con un proyecto nuevo y continuando con los modelos, los conjuntos de modelos, los conjuntos de permisos, los grupos, los roles y los atributos del usuario.
Primero, una analogía para comprender las funciones principales de Looker en este contexto:
Un proyecto es como una casa.Un modelo es una habitación de la casa que está llena de contenido específico.
Un conjunto de modelos es un grupo de habitaciones o una sola habitación (dormitorios, cocina).
Un conjunto de permisos es una lista de tareas de actividades que especifica lo que las personas pueden hacer en una habitación (comer, jugar, dormir).
Un grupo es una forma de combinar personas con características compartidas (adultos, niños, invitados).
Un rol es la forma en que se les entrega a grupos de personas sus listas de tareas de actividades en diferentes conjuntos de salas.
Un atributo del usuario es una clave que abre elementos especiales en la casa (tetera, herramientas eléctricas).
Situación
El siguiente es un ejemplo de una startup con equipos de finanzas, ventas y productos. El director general es nuestro único administrador y quiere que cada equipo vea solo el contenido que es relevante para ellos, con la excepción de que el vicepresidente de cada equipo debe tener acceso al contenido de todos los equipos. Quiere que los empleados estándar, los administradores y los vicepresidentes tengan acceso a diferentes funciones.
- Los empleados estándar deberían poder ver y explorar los datos en sus propios modelos.
- Los administradores deben tener acceso estándar y también poder descargar y programar contenido.
- Los vicepresidentes deben tener casi todos los privilegios, excepto algunos reservados solo para el director general.
El director general quiere que los vendedores puedan ver los datos de sus propias actividades, pero no los números de ventas individuales de otro vendedor. Sin embargo, los gerentes de ventas deben poder ver las cifras de todos los vendedores. Por último, hay algunos campos financieros con información sensible que quiere ocultar para los empleados estándar que usan ese modelo.
Este es el organigrama:
Este gráfico revela la siguiente estructura organizativa de nuestra startup de ejemplo:
- Director general
- Vicepresidente de Finanzas
- Gerente de finanzas
- Contador
- Vicepresidente de Ventas
- Gerente de ventas del oeste
- Vendedor del oeste
- Gerente de ventas del este
- Vendedor del este
- Vicepresidente de Producto
- Administrador de productos
- Ingeniero
La implementación de los controles de acceso deseados implicará los siguientes pasos:
- Crea un proyecto: Un proyecto es el vínculo estructural entre una conexión de base de datos y los modelos de datos.
- Agrega modelos: Decide qué datos se revelarán a qué usuarios.
- Crea conjuntos de modelos: Agrupa los modelos relevantes.
- Crea conjuntos de permisos: Define de forma explícita las acciones que los usuarios pueden realizar dentro de un conjunto de modelos.
- Crear grupos: Agrupa usuarios similares.
- Crear roles: Crea las conexiones entre los conjuntos de modelos, los conjuntos de permisos y los grupos.
- Editar el acceso al contenido: Administra qué paneles y temas pueden ver los usuarios a través de las carpetas.
- Agregar filtros de datos: Filtra aún más los datos a los que pueden acceder usuarios específicos dentro de un modelo.
1. Crea un proyecto
Lo primero que necesitamos es un proyecto, que es un contenedor para uno o más modelos. Si ya tienes un proyecto configurado, puedes omitir este paso. De lo contrario, puedes navegar a la página LookML Projects seleccionando Projects en la sección Develop de Looker y New LookML Project para crear un proyecto nuevo. Para obtener instrucciones más detalladas sobre cómo crear un proyecto nuevo, consulta la página de documentación Cómo generar un modelo.
En la página Nuevo proyecto, crearemos un proyecto con la siguiente configuración:
- En la sección Nombre, le asignamos un nombre al proyecto.
- En la sección Starting Point, seleccionamos Generate Model from Database Schema.
- En el menú desplegable Connection, seleccionamos el nombre de nuestra conexión a la base de datos.
- En la sección Build Views From, en este ejemplo, seleccionamos la opción All Tables para que el generador de LookML cree un archivo de vista para cada tabla de tu base de datos.
Una vez que se haya configurado la configuración deseada para el proyecto nuevo, seleccionamos Create Project.
Cuando crees un proyecto, se te dirigirá al modelo de LookML generado automáticamente del proyecto. En este punto, deberás usar el botón Configure Git para configurar el control de versiones del proyecto. Las instrucciones detalladas para configurar el control de versiones se encuentran en la página de documentación Configura y prueba una conexión de Git.
2. Agrega modelos
Un modelo de datos es como un portal personalizable en la base de datos. Cada modelo puede exponer diferentes datos a los usuarios. En nuestro ejemplo, nuestros vendedores necesitan datos diferentes a los de nuestros ingenieros, por lo que agregaremos modelos separados para exponer la información adecuada de la base de datos a cada tipo de usuario.
En nuestro proyecto de LookML, agregaremos nuevos archivos de modelos de LookML con los nombres de cada uno de los modelos deseados (finance
, sales
y product
). Asegúrate de definir al menos un Explorar en cada archivo de modelo. Esto nos permitirá seleccionar el modelo cuando creemos conjuntos de modelos (de lo contrario, no aparecerán en la selección). Para obtener más información sobre cómo usar el parámetro explore
en tu archivo de modelo, consulta la página de documentación Información sobre los archivos de modelo y vista.
Una vez que hayamos agregado correctamente los modelos, aún tendremos que configurarlos. Para configurar los modelos, volveremos a la página Projects en la sección Develop, que ahora debería mostrar un texto en rojo que dice "Configuration required for use" intercalado con cada nombre de modelo.
Junto a cada modelo, selecciona Configurar. Nos aseguraremos de que el nombre del proyecto sea correcto, junto con las conexiones que permitiremos que use este modelo, y luego lo guardaremos.

Después de que todos los modelos estén configurados correctamente, ya no aparecerán los mensajes de problemas de configuración en rojo que encontramos anteriormente.
Recuerda que, en Looker, otorgarle a un usuario el permiso see_lookml
o develop
en un modelo le otorga ese permiso para todos los modelos de ese proyecto. Por lo tanto, debes crear proyectos independientes si deseas particionar el permiso para ver o desarrollar LookML. De lo contrario, solo debes crear un modelo nuevo. Los permisos de los modelos son suficientes para garantizar que solo ciertas personas puedan consultar ciertos datos.
Para obtener más información sobre los permisos, consulta nuestra documentación sobre roles.
3. Crea conjuntos de modelos
Ahora que se configuraron los modelos de datos de cada departamento, agregaremos el modelo correspondiente a cada departamento en los conjuntos de modelos que compilamos. Para crear nuevos conjuntos de modelos, navegaremos a la página Roles en el panel Administrador y seleccionaremos Nuevo conjunto de modelos. Para obtener más instrucciones sobre cómo crear conjuntos de modelos nuevos, consulta la página de documentación Roles.
Una vez que se hayan creado los nuevos conjuntos de modelos, se mostrarán en la sección Conjuntos de modelos de la página Roles, como en la siguiente captura de pantalla de ejemplo:
4. Cómo crear conjuntos de permisos
A continuación, crearemos conjuntos de permisos con los conjuntos de modelos que acabamos de crear. Como se mencionó cuando configuramos la situación, queremos cuatro niveles de permisos que correspondan a los cuatro niveles jerárquicos del organigrama, y los niveles superiores deben incluir los permisos de los niveles inferiores. En nuestro caso, identificaremos los conjuntos de permisos de la siguiente manera:
- El director ejecutivo tiene establecido el permiso Administrador.
- Los vicepresidentes tienen el permiso Administrador limitado establecido.
- Los administradores tienen establecido el permiso Descargar y compartir.
- Los empleados estándar tienen establecido el permiso Ver y explorar.
Para crear nuevos conjuntos de permisos, navegaremos a la página Roles en el panel Administrador y seleccionaremos Nuevo conjunto de permisos. Para cada nivel de permiso, seleccionaremos los permisos adecuados. En general, los conjuntos de permisos deben superponerse lo menos posible, y cada uno debe agregar solo los permisos específicos que queremos que tengan los usuarios con este conjunto de permisos. Esto se debe a que les daremos a algunos usuarios varios conjuntos de permisos y queremos saber exactamente qué permite cada uno. Sin embargo, debido a la estructura del árbol, a menudo es necesaria cierta superposición.
En nuestro ejemplo, queremos que el permiso Ver y explorar esté configurado para permitir que los usuarios vean contenido, hagan preguntas y guarden tarjetas útiles. Por lo tanto, les otorgaremos los permisos asociados con ver contenido (como see_looks
y see_user_dashboards
), el permiso explore
y el permiso save_content
. Las excepciones notables aquí son see_lookml
, que solo queremos para desarrolladores, y see_sql
, que reservamos para quienes entienden SQL y son de confianza para ver la estructura de la base de datos. Todos estos permisos están estrictamente bajo la rama access_data
. No otorgaremos ninguno de los permisos see
que se encuentran en la parte inferior del árbol, ya que son permisos administrativos.
Para el conjunto de permisos Descargar y compartir, agregaremos los permisos asociados con la descarga, programación, uso compartido y creación de looks públicos (lo que permite compartir looks con usuarios que no son de Looker) y see_schedules
(como pueden crear programas, es lógico que también puedan verlos en el panel Administrador).
Los únicos campos que se seleccionaron cuando se configuraron los conjuntos de permisos Ver y explorar y Descargar y compartir son los permisos superiores necesarios para seleccionar los permisos secundarios agregados en la rama access_data
. Por lo tanto, como los usuarios con el conjunto de permisos Descargar y compartir también tendrán el conjunto de permisos Ver y explorar, no es necesario incluir permisos como see_lookml_dashboards
, see_user_dashboards
y explore
en el conjunto de permisos Descargar y compartir, ya que estos no contienen ningún permiso secundario que sea necesario para el conjunto de permisos Descargar y compartir.
Por último, para nuestro conjunto de permisos de Administrador limitado, agregaremos la mayoría de los permisos administrativos en la parte inferior del árbol, excepto los privilegios manage_models
y sudo
que la directora ejecutiva solo quiere para ella. Se ve de la siguiente manera:
Cuando termines, los conjuntos de permisos incluirán los siguientes permisos:
- Administrador: El conjunto de permisos Administrador, que se reserva para el director general de nuestra empresa de ejemplo, incluye todos los permisos.
- Administrador limitado: El conjunto de permisos de Administrador limitado incluye los permisos
create_prefetches
,login_special_email
,manage_homepage
,manage_spaces
,see_alerts
,see_datagroups
,see_logs
,see_pdts
,see_queries
,see_users
yupdate_datagroups
. - Descargar y compartir: El conjunto de permisos Descargar y compartir incluye los permisos
access_data
,create_public_looks
,download_with_limit
,download_without_limit
,save_content
,schedule_external_look_emails
,schedule_look_emails
,see_looks
,see_schedules
,send_outgoing_webhook
,send_to_s3
ysend_to_sftp
. - Ver y explorar: El conjunto de permisos Ver y explorar incluye los permisos
access_data
,create_table_calculations
,explore
,save_content
,see_drill_overlay
,see_lookml_dashboards
,see_looks
ysee_user_dashboards
.
Para ver los permisos que pertenecen a un conjunto de permisos existente, navega a la sección Conjuntos de permisos de la página de administración Roles.
5. Crear grupos
El siguiente paso es crear los grupos y agrupar a nuestros usuarios. Crearemos grupos para empleados estándar y gerentes en cada departamento, ya que, en última instancia, coincidirán con los diferentes roles que crearemos más adelante. Los vicepresidentes estarán en su propio grupo y el director general no necesita un grupo. Cuando se complete, la página Grupos debería mostrar los siguientes grupos y sus IDs correspondientes, que Looker genera automáticamente. Por ejemplo:
ID | Nombre |
---|---|
1 | Todos los usuarios |
3 | Finanzas |
4 | Ventas |
5 | Producto |
7 | Gerente de ventas |
8 | Administrador de productos |
9 | Gerente de finanzas |
10 | Vicepresidentes |
Con los grupos creados, necesitaremos agregar usuarios a esos grupos. Para obtener instrucciones sobre cómo agregar usuarios a grupos, consulta la página de documentación Grupos.
Cuando agregues usuarios a los grupos que creamos, recuerda que, debido a la forma en que estructuramos los permisos, es posible que los grupos de nivel superior se incluyan en los grupos de nivel inferior. Por ejemplo, queremos que los vicepresidentes estén en el grupo Finanzas, pero no queremos que los gerentes de ventas estén en el grupo Producto. Una forma eficiente de abordar esto es comenzar por agregar usuarios a los grupos de nivel superior (como los vicepresidentes) para que podamos agregarlos como un grupo a los niveles inferiores.
6. Crea roles
Ahora que tenemos nuestros conjuntos de modelos, conjuntos de permisos y grupos, podemos combinarlos con roles. Cada rol tendrá un solo conjunto de permisos y un solo conjunto de modelos, y puede incluir uno o más grupos. Dado que los roles deben incluir un conjunto de modelos, volveremos a crear roles para los empleados estándar y para los administradores de cada departamento.
- Roles estándares: Los roles estándares incluirán el conjunto de permisos Ver y explorar, junto con el conjunto de modelos correspondiente. Asigna roles estándar a los grupos estándar y de gerentes de ese departamento, y al vicepresidente. Por ejemplo, asigna el rol Finanzas estándar a los grupos Finanzas y Gerente de finanzas, y al vicepresidente de Finanzas.
- Roles de administrador:Los roles de administrador tendrán el permiso Descargar y compartir establecido, junto con el conjunto de modelos correspondiente. Estos roles se deben asignar al grupo de administradores del departamento correspondiente y al vicepresidente del departamento.
- Roles de administrador:Los roles de administrador tendrán el permiso Descargar y compartir establecido, junto con el conjunto de modelos correspondiente. Estos roles se deben asignar al grupo de administradores del departamento correspondiente y al vicepresidente del departamento.
- Rol de vicepresidente: El rol de vicepresidente tendrá el permiso Administrador limitado establecido y el modelo Todo. Este rol se asignará al grupo VPs.
7. Cómo editar el acceso al contenido
El siguiente paso es organizar los permisos de acceso a las carpetas para que cada grupo tenga acceso a su propio contenido (y solo a este). Este es el diseño de las carpetas de nuestra instancia de ejemplo, que se puede ver si navegas a la página Acceso al contenido en el panel Administrador:
El acceso a las carpetas sigue las reglas de la herencia jerárquica. Para obtener más información sobre cómo funciona, consulta nuestra documentación sobre los niveles de acceso y el control de acceso y la administración de permisos.
Siguiendo las reglas de acceso a carpetas, queremos otorgar acceso de Ver a todos los usuarios en la carpeta Compartida. Le daremos a cada grupo acceso de Ver a las carpetas superiores del árbol sobre las carpetas a las que tendrá acceso el grupo. De esta manera, a medida que descendemos por el árbol, si no queremos que un grupo vea una carpeta, no lo incluiremos cuando otorguemos acceso.
Podemos otorgar el nivel de acceso Administrar acceso, Editar a los grupos en una carpeta en la que queremos controlar quién la ve. En nuestro ejemplo, solo queremos que el director general y los vicepresidentes tengan esos permisos. Todas las demás personas solo tendrán acceso de vista a las carpetas que necesiten.
8. Agrega restricciones de acceso a los datos con atributos del usuario
En esta sección, se muestran métodos para evitar que usuarios específicos accedan a filas o columnas de datos específicas de un modelo al que tienen acceso. Recuerda que nuestro director general quiere que los vendedores puedan ver los datos de sus propias actividades individuales, pero no las de otras personas. Sin embargo, los gerentes de ventas deben poder ver las cifras de todos los vendedores. Para ello, aprovecharemos los atributos del usuario y el parámetro sql_always_where
.
Crea atributos de usuario
Primero, crearemos un nuevo atributo de usuario llamado access_level
que estará oculto para los usuarios. Esto nos permitirá definir niveles de acceso para los diferentes grupos que tenemos. Cuando creemos nuestro atributo de usuario, estableceremos los siguientes valores:
- Nombre:
access_level
- Etiqueta: Nivel de acceso
- Tipo de datos: Cadena
- Acceso de los usuarios: Editar
- Ocultar valores: No
En nuestro ejemplo, dejaremos sin marcar la casilla Establecer un valor predeterminado.
Mientras creamos el campo, configuraremos tres niveles de acceso: Básico, Premium y Completo. Asignaremos esos niveles a los grupos estándar, de gerente y de vicepresidente, respectivamente. Para ello, ve a la pestaña Group Values en la misma sección. Consulta la sección Cómo asignar valores a los grupos de usuarios de la documentación de Atributos de usuario para obtener más detalles.
Debido a que el orden de estas reglas es importante, queremos colocar los valores de acceso más altos en la parte superior de la lista para anular los valores de acceso más bajos que se encuentran en la parte inferior. Este comportamiento se explica con más detalle en nuestra página de documentación sobre atributos de usuario.
Cómo filtrar datos de filas con atributos de usuario
Supongamos que ya se está creando una tarjeta Explorar con toda la información de las ventas. Verificaremos el nivel de acceso del usuario que consulta la exploración. Si el nivel de acceso es Básico (que les otorgamos a todos nuestros vendedores estándar), siempre filtraremos la exploración por el nombre del usuario, de modo que solo pueda acceder a las filas de cada vendedor. Si el nivel de acceso es Premium o Completo, la consulta no se filtrará. De forma predeterminada, tenemos un atributo de usuario llamado Nombre, que es el nombre del usuario de Looker. El código LookML para la exploración se verá de la siguiente manera:
explore: sales_info { sql_always_where: {% if {{_user_attributes['access_level']}} == "Basic" %} ${sales_info.name} = "{{_user_attributes['name']}}" % endif % ;; }
Cómo filtrar datos de columnas con atributos del usuario
Por último, hay algunas columnas de PII (información de identificación personal) en el modelo financiero que también queremos ocultar a algunos de nuestros usuarios. Para ello, podemos usar los atributos de usuario que creamos, junto con las instrucciones para aplicar permisos a nivel de la base de datos en Looker en la página de documentación Atributos de usuario, para que solo los usuarios con el nivel de acceso Completo puedan ver los campos de PII.
¡Listo! Terminamos de configurar nuestros controles de acceso a datos y contenido, y todos nuestros usuarios pueden explorar Looker libremente. De esta manera, nos aseguramos de que solo vean el contenido que les permitimos ver.