À propos des filtres

Les filtres contrôlent l'accès sécurisé aux valeurs de données dans un cube. Ils représentent la forme de sécurité la plus granulaire disponible.

Lorsque vous créez un filtre, vous désignez un jeu de restrictions dans des cellules de cube particulières ou dans un intervalle de cellules. Vous pouvez alors affecter le filtre à des utilisateurs ou à des groupes.

Votre propre rôle de sécurité détermine si vous pouvez créer, affecter, modifier, copier, renommer ou supprimer des filtres :

  • Si vous êtes doté du rôle de gestionnaire d'application, vous pouvez gérer les filtres pour tous les utilisateurs ou groupes. Les filtres n'ont aucune incidence pour vous.
  • Si vous êtes doté d'un rôle autorisé à mettre à jour la base de données, vous pouvez gérer les filtres pour les applications que vous avez créées.
  • Si vous êtes doté du rôle de gestionnaire de base de données, vous pouvez gérer les filtres dans vos applications ou cubes.
  • Si vous êtes doté d'un rôle autorisé à accéder à la base de données (rôle par défaut), vous disposez de l'accès en lecture aux valeurs des données dans toutes les cellules, sauf si votre accès est limité par des filtres.

Créer des filtres

Vous pouvez créer plusieurs filtres pour un cube. Si vous modifiez un filtre, les modifications apportées à sa définition sont héritées par tous les utilisateurs de ce filtre.

Voir Contrôle de l'accès aux cellules de base de données à l'aide de filtres de sécurité.

  1. Naviguez jusqu'à l'éditeur de filtres.

    Dans l'interface Redwood :

    1. Dans la page Applications, ouvrez l'application, puis ouvrez la base de données (cube).
    2. Cliquez sur Personnalisation, puis sur Filtres.

    Dans l'interface Web classique :

    1. Dans la page Applications, développez l'application.
    2. Dans le menu Actions, à droite du nom du cube, lancez l'inspecteur.
    3. Sélectionnez l'onglet Filtres.
  2. Cliquez sur Ajouter.
  3. Entrez un nom dans la zone de texte Nom du filtre.
  4. Dans l'Éditeur de filtres, cliquez sur Ajouter.
  5. Sous Accès, cliquez sur le menu déroulant et sélectionnez un niveau d'accès.
    • Aucun : Aucune donnée ne peut être extraite ou mise à jour.

    • Lecture : Les données peuvent être extraites mais non mises à jour.

    • Écriture : Les données peuvent être extraites et mises à jour.

    • MetaRead : Les métadonnées (noms de dimension et de membre) peuvent être extraites et mises à jour.

      Le niveau d'accès MetaRead remplace tous les autres niveaux d'accès. Des filtres de données supplémentaires sont mis en oeuvre dans les filtres MetaRead existants. Le filtrage sur des combinaisons de membres (à l'aide de la relation AND) ne s'applique pas au niveau d'accès MetaRead. MetaRead filtre chaque membre séparément (à l'aide de la relation OR).

  6. Sélectionnez la rangée sous Spécification de membre et entrez les noms de membre, puis cliquez sur Soumettre Illustration de l'icône de soumission de filtre dans Redwood..

    Vous pouvez filtrer les membres séparément ou filtrer des combinaisons de membres. Spécifiez des noms de dimension ou de membre, des noms d'alias, des combinaisons de membres, des jeux de membres définis par des fonctions ou des noms de variables de substitution, qui sont précédés par une perluète (&). Séparez les entrées multiples par des virgules.

  7. Créez des rangées supplémentaires pour le filtre selon les besoins.

    Si des rangées de filtre se chevauchent ou sont en conflit, des spécifications de zone de filtre plus détaillées sont appliquées plutôt que des spécifications moins détaillées et des droits d'accès plus permissifs sont appliqués plutôt que des droits moins permissifs. Par exemple, si vous accordez à un utilisateur l'accès en lecture aux données réelles et l'accès en écriture aux données de janvier, l'utilisateur dispose de l'accès en écriture aux données réelles de janvier.

  8. Cliquez sur Valider pour vous assurer que le filtre est valide.
  9. Cliquez sur Enregistrer.

Pour modifier un filtre dans l'interface Redwood, localisez l'onglet Filtres en sélectionnant le cube, puis en sélectionnant la page Personnalisation. Vous pouvez alors modifier le filtre en cliquant sur son nom et en apportant des modifications dans l'Éditeur de filtres. Pour modifier une rangée existante, cliquez deux fois sur cette rangée.

Pour modifier un filtre dans l'interface Web classique, allez à l'onglet Filtres de l'inspecteur, puis modifiez le filtre en cliquant sur son nom et en apportant vos modifications dans l'éditeur de filtres.

Vous pouvez copier, renommer ou supprimer un filtre en cliquant sur le menu Actions à droite du nom du filtre et en sélectionnant une option.

Après avoir créé des filtres, vous devez les affecter à des utilisateurs ou groupes.

Créer des filtres dynamiques optimisés

Vous pouvez créer des filtres dynamiques basés sur des données sources externes pour réduire ainsi le nombre de définitions de filtre nécessaires.

Au lieu de gérer un jeu de filtres d'accès aux données codés de façon permanente pour un grand nombre d'utilisateurs, vous pouvez filtrer l'accès aux cellules du cube à partir de données sources externe, en fonction des noms de membre et d'utilisateur.
Pour ce faire, vous utilisez une syntaxe de définition de filtre dynamique, notamment la méthode @datasourceLookup et les variables $LoginUser et $LoginGroup. Les données sources externes sont un fichier CSV ou une table relationnelle. Pour des données sources relationnelles, vous pouvez charger le fichier .csv dans une table relationnelle.

Syntaxe de filtre dynamique

Utilisez la syntaxe de filtre dynamique pour créer des filtres flexibles que vous pouvez affecter à plusieurs utilisateurs et groupes.

Les rangées de filtre peuvent contenir les éléments suivants dans leur définition, en plus des expressions de membre.

$loginuser

Cette variable stocke la valeur de l'utilisateur actuellement connecté à l'exécution. Elle peut être utilisée avec la méthode @datasourcelookup.

$logingroup

Cette variable stocke la valeur de tous les groupes auxquels appartient l'utilisateur actuellement connecté. Elle inclut les groupes directs et indirects. Si elle est utilisée avec la méthode @datasourcelookup, chaque groupe est consulté individuellement par rapport à la source de données.

@datasourcelookup

Cette méthode extrait les enregistrements à partir d'une source de données.

Syntaxe

@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Paramètre Description
dataSourceName

Nom de la source de données externe définie dans Essbase. Pour une source de données au niveau de l'application, ajoutez le nom de l'application et une période comme préfixe du nom.

columnName

Nom de la colonne de la source de données pour rechercher la valeur columnValue indiquée.

columnValue

Valeur à rechercher dans columnName.

returnColumnName

Nom de la colonne de la source de données à partir de laquelle la liste de valeurs est retournée.

Description

Un appel @datasourcelookup est équivalent à l'interrogation SQL suivante :

select returnColumnName from dataSourceName where columnName=columnValue

@datasourcelookup consulte la source de données indiquée et recherche les enregistrements dans lesquels columnName contient columnValue. Si vous spécifiez columnValue comme $loginuser, cette méthode recherche les enregistrements dans lesquels columnName contient le nom de l'utilisateur actuellement connecté.

Essbase forme la définition de filtre en combinant les éléments de la liste comme chaîne séparée par des virgules. Si un enregistrement contient des caractères spéciaux, des espaces ou uniquement des chiffres, il est automatiquement entouré par des guillemets.

Exemples

Entourez les paramètres par des guillemets.

L'appel suivant consulte une source de données globale et retourne la liste des noms de magasins, où Mary est le gestionnaire du magasin.

@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")

L'appel suivant consulte une source de données au niveau de l'application et retourne la liste des noms de magasins, où l'utilisateur actuellement connecté est le gestionnaire du magasin.

@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")

L'appel suivant consulte une source de données au niveau de l'application et retourne la liste des noms de magasins, où le rayon de magasin correspond à l'un des groupes auquel appartient l'utilisateur actuellement connecté.

@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")

Si l'utilisateur connecté appartient aux 3 groupes, la méthode @datasourcelookup ci-dessus retourne toutes les valeurs de colonne correspondantes pour chaque groupe.

Flux de travail pour la création de filtres dynamiques

Utilisez le flux de travail général suivant pour créer des filtres dynamiques.

Ce flux de travail de filtres dynamiques suppose que vous ayez déjà un cube et que vous ayez provisionné les utilisateurs et les groupes.

  1. Identifiez une source de données, qu'il s'agisse d'un fichier ou d'une source relationnelle.
  2. Définissez la connexion et la source de données dans Essbase, soit au niveau global, soit au niveau de l'application.
  3. Créez des filtres dynamiques au niveau cube :
    • Dans l'interface Redwood, naviguez jusqu'au cube, sélectionnez Personnalisation puis choisissez Filtres.
    • Dans l'interface Web classique, utilisez la section Filtres de l'inspecteur de la base de données.

  4. Définissez des rangées pour chaque filtre, à l'aide de la syntaxe de filtre dynamique pour utiliser la variable $loginuser, la variable $logingroup et la méthode @datasourcelookup, le cas échéant.
  5. Affectez les filtres à des utilisateurs ou à des groupes.
  6. Si vous avez affecté le filtre à un groupe, affectez le groupe à l'application à filtrer :
    • Dans l'interface Redwood, naviguez jusqu'à l'application, sélectionnez Personnalisation puis choisissez Autorisations.
    • Dans l'interface Web classique, utilisez la section Autorisations de l'inspecteur de l'application.

Exemple de filtre dynamique

Le filtre dynamique suivant fonctionne avec le cube nommé Efficient.UserFilters, disponible dans la galerie comme exemple de modèle.


Filtre dynamique avec trois rangées accordant à l'utilisateur connecté un accès en lecture des métadonnées.

Pour apprendre à créer et à appliquer ce filtre dynamique, téléchargez le modèle de classeur, Efficient_Filters.xlsx, à partir de la section Technique de la galerie, et suivez les instructions du fichier README dans le classeur. La galerie est disponible dans la section Fichiers de l'interface Web d'Essbase.