A propos des filtres

Les filtres permettent de contrôler l'accès de sécurité à des valeurs de données dans un cube. Les filtres constituent la forme la plus fine de sécurité disponible.

Lorsque vous créez un filtre, vous appliquez un ensemble de restrictions à des cellules de cube spécifiques ou à une plage de cellules. Vous pouvez ensuite 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 disposez du rôle Gestionnaire d'applications, vous pouvez gérer l'ensemble des filtres pour tous les utilisateurs ou groupes. Les filtres n'ont pas d'incidence pour vous.
  • Si vous disposez du rôle Mise à jour de la base de données, vous pouvez gérer les filtres pour les applications que vous avez créées.
  • SI vous disposez du rôle Gestionnaire de base de données, vous pouvez gérer les filtres dans vos applications ou cubes.
  • Si vous disposez du rôle Accès à la base de données (par défaut), vous avez accès en lecture aux valeurs de données dans toutes les cellules, sauf si votre accès est restreint par des filtres.

Création de 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 utilisateurs de ce filtre.

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

  1. Accédez à l'éditeur de filtre.

    Dans l'interface Redwood, procédez comme suit :

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

    Dans l'interface Web classique, procédez comme suit :

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

    • Lecture (Read) : les données peuvent être extraites mais pas mises à jour.

    • Ecriture (Write) : les données peuvent être extraites et mises à jour.

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

      Le niveau d'accès Lecture des métadonnées (MetaRead) remplace tous les autres niveaux d'accès. Des filtres de données supplémentaires sont appliqués dans les filtres de lecture de métadonnées existants. Le filtrage sur des combinaisons de membres (à l'aide de relations AND) ne s'applique pas à l'accès Lecture des métadonnées (MetaRead). L'accès Lecture des métadonnées (MetaRead) filtre chaque membre de façon distincte (à l'aide d'une relation OR).

  6. Sélectionnez la ligne en dessous de Spécification de membre et entrez des noms de membre, puis cliquez sur Soumettre Image de l'icône Redwood de soumission du filtre..

    Vous pouvez filtrer les membres séparément ou par combinaison de membres. Indiquez des noms de membre ou dimension, des noms d'alias, des combinaisons de membres, des ensembles de membres qui sont définis par fonction, ou des noms de variable de substitution, qui sont précédés par une esperluette (&). Séparez les entrées par des virgules.

  7. Créez des lignes supplémentaires pour le filtre si besoin.

    Si les lignes de filtre se chevauchent ou sont en conflit, les spécifications de zone de cube plus détaillées s'appliquent à la place de celles moins détaillées. En outre, des droits d'accès plus souples s'appliquent à la place de ceux qui le sont moins. Par exemple, si vous accordez à un utilisateur l'accès Lecture (Read) à la valeur Actual et l'accès Ecriture (Write) à la valeur Jan, l'utilisateur dispose d'un droit d'accès en écriture à la valeur Jan Actual.

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

Pour modifier un filtre dans l'interface Redwood, sélectionnez le cube puis la page Personnalisation pour localiser l'onglet Filtres. Modifiez ensuite le filtre en cliquant sur son nom et en apportant vos modifications dans l'éditeur de filtre. Pour modifier une ligne existante, cliquez deux fois dessus.

Pour modifier un filtre dans l'interface Web classique, accédez à l'onglet Filtres dans l'inspecteur. Cliquez sur son nom et apportez vos modifications dans l'éditeur de filtre pour le modifier.

Vous pouvez copier, renommer ou supprimer un filtre en cliquant sur le menu Actions à droite de son nom et en choisissant une option.

Après avoir créé des filtres, affectez-les à des utilisateurs ou à des groupes.

Création de filtres dynamiques efficaces

Vous pouvez créer des filtres dynamiques en fonction de données source externes afin de réduire le nombre de définitions de filtre nécessaires.

Au lieu de gérer un ensemble de filtres d'accès aux données codés en dur pour de nombreux utilisateurs, vous pouvez filtrer l'accès aux cellules de cube à partir de données source externes, en fonction des noms d'utilisateur et de membre.
Pour ce faire, utilisez la syntaxe de définition de filtre dynamique, y compris la méthode @datasourceLookup, ainsi que les variables $LoginUser et $LoginGroup. Vos données source externes sont un fichier .csv ou une table relationnelle. Pour des données source 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 lignes de filtre peuvent contenir les éléments suivants dans le cadre de la définition, ainsi que des expressions de membre.

$loginuser

Cette variable stocke la valeur de l'utilisateur connecté au moment de l'exécution. Elle peut être utilisée en association 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. Lorsque vous l'utilisez conjointement à la méthode @datasourcelookup, chaque groupe est individuellement recherché dans la source de données.

@datasourcelookup

Cette méthode extrait des 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 de niveau application, ajoutez au nom un préfixe contenant le nom de l'application et une période.

columnName

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

columnValue

Valeur à rechercher dans columnName.

returnColumnName

Nom de la colonne de source de données à partir de laquelle renvoyer une liste de valeurs.

Description

Un appel @datasourcelookup est équivalent à la requête SQL suivante :

select returnColumnName from dataSourceName where columnName=columnValue

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

Essbase constitue la ligne de définition de filtre en associant les éléments de liste sous la forme d'une chaîne séparée par des virgules. Si un enregistrement contient des espaces, des caractères spéciaux ou uniquement des chiffres, ils sont placés entre guillemets.

Exemples

Placez les paramètres entre guillemets.

L'appel suivant recherche une source de données globale et renvoie la liste des noms de magasin où Mary est la responsable (store manager).

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

L'appel suivant recherche une source de données de niveau application et renvoie la liste des noms de magasin où l'utilisateur actuellement connecté est le responsable (store manager).

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

L'appel suivant recherche une source de données de niveau application. Il renvoie ensuite la liste des noms de magasin où le service de magasin correspond à l'un des groupes auxquels appartient l'utilisateur connecté.

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

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

Workflow pour la création de filtres dynamiques

Utilisez le workflow général suivant pour créer des filtres dynamiques.

Pour ce workflow de filtres dynamiques, il est supposé que vous avez déjà un cube, ainsi que des groupes et des utilisateurs provisionnés.

  1. Identifiez une source de données, s'il s'agit d'un fichier ou d'une source relationnelle.
  2. Définissez la connexion et la source de données dans Essbase, globalement ou au niveau de l'application.
  3. Créez des filtres au niveau du cube en procédant comme suit :
    • Dans l'interface Redwood, accédez au cube, choisissez Personnalisation, puis Filtres.
    • Dans l'interface Web classique, utilisez la section Filtres de l'inspecteur de bases de données.

  4. Définissez les lignes de filtre pour chaque filtre à l'aide de la syntaxe de filtre dynamique pour employer 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, accédez à l'application, choisissez Personnalisation, puis Autorisations.
    • Dans l'interface Web classique, utilisez la section Autorisations de l'inspecteur d'applications.

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 lignes octroyant à l'utilisateur connecté l'accès en lecture aux métadonnées.

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