Désactivez le commentaire :
Utilisation
explore: explore_name {
access_filter: {
field: fully_scoped_field
user_attribute: user_attribute_name
}
}
|
Hiérarchie
access_filter |
Valeur par défaut
Aucun
Acceptation
Nom du champ LookML et attribut utilisateur associé
Règles spéciales
Vous pouvez appliquer plusieurs paramètres access_filter dans la même exploration.
|
Définition
access_filter vous permet d'appliquer des restrictions de données spécifiques aux utilisateurs. Contrairement à la plupart des paramètres LookML, il doit être utilisé conjointement avec d'autres paramètres dans Looker pour fonctionner correctement. Un paramètre access_filter est spécifique à une seule exploration. Vous devez donc vous assurer d'appliquer un paramètre access_filter à chaque exploration nécessitant une restriction.
N'oubliez pas d'ajouter
access_filterà chaque exploration qui en a besoin. Si vous oubliez d'ajouteraccess_filterà une exploration qui devrait en comporter, les données ne seront pas restreintes et les utilisateurs pourront voir toutes les données de cette exploration.
Le comportement de access_filter serait semblable à celui que vous auriez si vous étiez assis à côté d'un utilisateur et que vous lui demandiez d'appliquer un ou plusieurs filtres dans l'interface utilisateur Explorer avant d'exécuter une requête. Par exemple, si l'utilisateur ne s'occupe que d'un sous-ensemble de vos clients, vous pouvez lui demander d'appliquer un filtre par nom de client.
Pour implémenter un filtre d'accès, vous devez suivre plusieurs étapes :
- Déterminez le ou les champs qui doivent être soumis à une restriction. Dans l'exemple où les utilisateurs doivent appliquer un filtre de nom de client, vos utilisateurs peuvent avoir une exploration Client avec une dimension appelée Nom. Le champ serait référencé comme
customer.name. - Chaque utilisateur qui interagit avec l'exploration en question aura besoin d'une valeur pour le filtre d'accès. Dans notre exemple, chaque utilisateur aura besoin de la liste des noms de clients qu'il est autorisé à voir. Vous appliquez ces valeurs à chaque utilisateur ou groupe d'utilisateurs à l'aide de la fonctionnalité d'attributs utilisateur de Looker, que vous pouvez consulter sur la page de documentation Attributs utilisateur. Supposons que nous créions un attribut utilisateur allowed_customers.
- Enfin, associez l'attribut utilisateur que vous avez créé au champ qui doit utiliser sa valeur comme filtre. Dans notre exemple, nous allons associer l'attribut utilisateur allowed_customers au champ
customer.name, comme suit :
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
Exemples
Limiter l'accès des utilisateurs aux informations sur leur région de vente :
explore: customer {
access_filter: {
field: sales.region
user_attribute: sales_region
}
}
Limitez l'accès des utilisateurs aux informations concernant des services spécifiques de leurs clients :
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
access_filter: {
field: product.department
user_attribute: allowed_departments
}
}
Difficultés courantes
access_filter nécessite des noms de champs entièrement définis.
Si vous saisissez un nom de champ sans nom de vue, la plupart des paramètres de Looker utiliseront un nom de vue basé sur l'emplacement où le paramètre est utilisé. Cependant, access_filter ne fonctionne pas de cette manière et vous oblige à écrire à la fois le nom de la vue et celui du champ.
Par exemple, vous pourriez penser que cela fonctionnerait et que name serait interprété comme le nom du client :
explore: customer {
access_filter: {
field: name
user_attribute: allowed_customers
}
}
Cependant, ce n'est pas le cas et vous recevrez un message d'erreur. Vous devez écrire :
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
Même les administrateurs doivent définir des valeurs de filtre dans l'UI
Chaque utilisateur qui accède à une exploration utilisant access_filter doit avoir une valeur dans l'attribut utilisateur référencé. Cela s'applique même aux utilisateurs disposant du rôle d'administrateur, bien qu'ils puissent voir toutes les données. Les utilisateurs pour lesquels aucune valeur d'attribut utilisateur n'est définie recevront un message d'erreur lorsqu'ils tenteront d'afficher l'exploration.
Pour accorder à un administrateur ou à un autre utilisateur l'accès à toutes les valeurs d'un champ de chaîne, définissez le type de données de l'attribut utilisateur sur Filtre de chaîne (avancé) et utilisez la valeur
%, NULL.Pour accorder à un administrateur ou à un autre utilisateur l'accès à toutes les valeurs d'un champ numérique, définissez le type de données de l'attribut utilisateur sur Filtre numérique (avancé) et utilisez la valeur
<0, >=0, NULL.
Bon à savoir
Lorsqu'une exploration inclut access_filter, la valeur par défaut de full_suggestions passe à yes.
Lorsqu'une exploration inclut le paramètre access_filter, la valeur par défaut de full_suggestions passe à yes. La requête de suggestions s'exécute alors à l'aide de la logique Explorer, ce qui signifie que access_filter est appliqué pour affiner les suggestions renvoyées. La liste de suggestions est ainsi limitée aux données auxquelles l'utilisateur est censé avoir accès.
Si vous définissez manuellement full_suggestions sur no, la requête de suggestion de filtre ne s'exécutera pas.