permiso_de_acceso

Uso

access_grant: access_grant_name {
user_attribute: user_attribute_name
allowed_values: [ "value_1", "value_2" , ... ]
}
Jerarquía
access_grant
Valor predeterminado
Ninguna

Acepta
El nombre de un atributo de usuario con el subparámetro user_attribute y una lista de valores de atributos de usuario con el subparámetro allowed_values

Definición

Una concesión de acceso es una estructura de LookML que controla el acceso a otras estructuras de LookML, específicamente en Explorar, combinaciones, vistas y campos. El parámetro access_grant define una concesión de acceso.

access_grant toma el nombre de un atributo de usuario con el subparámetro user_attribute y una lista de valores aceptables para el atributo de usuario con el subparámetro allowed_values. Solo los usuarios a los que se les asigna uno de los valores permitidos en el atributo de usuario especificado pueden acceder a las estructuras a las que se requiere el otorgamiento de acceso.

Una vez definido, puedes usar el parámetro required_access_grants a nivel de Explorar, Unirse, Ver o Campo para solicitar el acceso otorgado a fin de acceder a esas estructuras.

Por ejemplo, la función de LookML que aparece a continuación crea un otorgamiento de acceso llamado can_view_financial_data, que se basa en el atributo de usuario department. Solo los usuarios a los que se les asignan los valores "finance" o "executive" en el atributo de usuario department tienen acceso a la concesión de acceso can_view_financial_data:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

Luego, asocia el otorgamiento de acceso can_view_financial_data con una estructura de LookML con el parámetro required_access_grants:

dimension: financial_data_field
  ...
  required_access_grants: [can_view_financial_data]
}

En el ejemplo anterior, solo los usuarios que tengan el valor de atributo de usuario adecuado para la concesión de acceso can_view_financial_data verán la dimensión financial_data_field.

Puedes definir varios otorgamientos de acceso en un modelo y puedes asignar múltiples otorgamientos de acceso a una estructura de LookML con el parámetro required_access_grants. En ese caso, un usuario debe tener acceso a todos los permisos de acceso especificados para tener acceso a la estructura de LookML.

Por ejemplo, la siguiente imagen de LookML define dos otorgamientos de acceso diferentes:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

access_grant: can_view_payroll_data {
  user_attribute: view_payroll
  allowed_values: [ "yes" ]
}

Luego, en el archivo de vista a continuación, el parámetro required_access_grants especifica ambos otorgamientos de acceso:

view: payroll {
  ...
  required_access_grants: [can_view_financial_data, can_view_payroll_data]
}

En este caso, solo los usuarios que tienen el valor "finance" o "executive" asignado a su atributo de usuario department y tienen el valor "yes" asignado a su atributo de usuario view_payroll pueden acceder a la vista.

Ejemplos

Define una concesión de acceso que requiera que los usuarios tengan el valor "product_management" o el valor "engineering" en el atributo de usuario department para tener acceso a la concesión de acceso engineering:

access_grant: engineering {
  user_attribute: department
  allowed_values: [ "product_management", "engineering" ]
}

También puedes definir los otorgamientos de acceso con atributos de usuario que toman datos numéricos o datos de fecha y hora. Para ello, debes encerrar los valores permitidos entre comillas dobles, como lo harías con una string. Por ejemplo, la siguiente concesión de acceso hace referencia al atributo de usuario id, que tiene un tipo de datos de número. Solo los usuarios con el valor id de 1, 2, 3, 4 o 5 tendrán acceso:

access_grant: user_id {
  user_attribute: id
  allowed_values: ["1", "2", "3", "4", "5"]
}

En el siguiente ejemplo, se hace referencia al atributo de usuario start_date, que tiene el tipo de datos Fecha/Hora. Solo se otorgará acceso a los usuarios que tengan el valor 2020-01-01 en el atributo user:

access_grant: start_date {
  user_attribute: start_date
  allowed_values: ["2020-01-01"]
}

Aspectos para tener en cuenta

No se permiten los atributos de usuario editables por el usuario con permisos de acceso

Los otorgamientos de acceso no pueden aceptar atributos de usuario que tengan un nivel de acceso de usuario de Editar. Los usuarios pueden ver y editar los valores de los atributos de usuario que tienen un nivel de Acceso de usuario de Editar en la página de su cuenta. Por motivos de seguridad, solo se permiten con access_grant los atributos de usuario que tienen un nivel de Acceso de usuario de Ninguno o Vista.

Los valores que aparecen en allowed_values deben coincidir exactamente con los valores de los atributos del usuario

access_grant funcionará con atributos de usuario que tengan el tipo de datos Filtro de strings (avanzado), Filtro de número (avanzado) o Filtro de fecha y hora (avanzado). Sin embargo, para otorgar acceso, los valores enumerados en el parámetro allowed_values deben coincidir con el valor del atributo de usuario exactamente.

Por ejemplo, si creaste un atributo de usuario llamado numeric_range con el tipo de datos Filtro de número (avanzado), puedes usar una expresión de filtro de Looker para ingresar un rango de números, como [1, 20]. En ese ejemplo, la expresión de filtro de Looker en el atributo de usuario mostrará un rango de números entre 1 y 20, inclusive. Sin embargo, como access_grant requiere una coincidencia exacta, el uso del parámetro allowed_values: ["10"] no otorgaría acceso. Para otorgar acceso, tendrías que usar allowed_values: ["[1, 20]"].

Lo mismo sucede con los atributos de usuario que tienen varios valores. Por ejemplo, un atributo de usuario con el tipo de datos Number Filter (avanzado) dado el valor 1, 3, 5 solo coincidiría con una concesión de acceso con el parámetro allowed_values: ["1, 3, 5"]. Del mismo modo, una concesión de acceso con el parámetro allowed_values: ["1"] no otorgaría acceso al usuario con múltiples valores en el atributo de usuario. Tampoco otorgaría acceso con este parámetro el parámetro allowed_values: ["1", "3", "5"], ya que, si bien el parámetro allowed_values: [] puede aceptar varios valores, ninguno de los tres valores del parámetro allowed_values: ["1", "3", "5"] coincide exactamente con el valor del atributo del usuario 1, 3, 5. En este caso, a un usuario con un valor de atributo de usuario de 1, 3 o 5 se le otorgaría acceso, ya que cada uno de esos valores coincide con una de las opciones del parámetro allowed_values: ["1", "3", "5"].

Del mismo modo, access_grant requiere una coincidencia exacta con los atributos de usuario del tipo de datos Filtro de strings (avanzado). A diferencia de las expresiones de filtro de Looker típicas, el uso del parámetro allowed_values: [ "Ca%" ] no coincide con un atributo de usuario con los valores Canada o California. Solo se establece una coincidencia entre un valor de atributo de usuario que tenga exactamente Ca% y se le otorgará acceso.

Los usuarios a los que no se les otorga acceso experimentan un comportamiento diferente según la estructura de LookML

Un usuario que no tiene acceso a una concesión de acceso experimentará un comportamiento diferente según la estructura de LookML a la que intenta acceder. Consulta las páginas de documentación de required_access_grants a nivel de Explorar, Unirte, Ver o Campo para obtener información sobre cómo se restringe el acceso a esas estructuras.

Las concesiones de acceso en varios niveles se agregan juntas

Si anidas las concesiones de acceso, las concesiones de acceso son aditivas. Por ejemplo, puedes crear required_access_grants para una vista y required_access_grants para un campo dentro de la vista. Para ver el campo, el usuario debe tener permisos de acceso al campo y a la vista. Del mismo modo para las uniones: si creas required_access_grants para las vistas en una combinación y también creas required_access_grants para la unión de estas dos vistas, un usuario debe tener acceso a ambas vistas y a la unión para poder ver la vista unida.

Acceso a estructuras que hacen referencia a estructuras restringidas

Los usuarios pueden acceder a los paneles o a los paneles que contengan objetos LookML a los que no tienen acceso. En estas situaciones, la apariencia o el panel se mostrarán como si esos objetos LookML se hubieran quitado del modelo.

Supongamos que tenemos una Exploración A, que contiene la unión A, la vista A y el campo A. A continuación, aplicaremos una restricción de acceso a Explorar A. Como era de esperar, cuando se unan a A, la vista A y el campo A heredarán esa restricción, pero solo cuando los usuarios interactúen con Explorar A. Si se usa la unión A, la vista A o el campo A en otra exploración B, no necesariamente tendrán restricciones de acceso. Por lo tanto, si planeas volver a usar los elementos de LookML, te recomendamos que apliques restricciones de acceso al nivel más bajo posible.