[EXPER’TECH] Gestion dynamique des droits d’accès aux données avec SSAS

Avec l’avènement de la Self-Service BI et des outils comme Power BI, les métiers veulent désormais gérer les droits d’accès et les périmètres pour chaque utilisateur eux-mêmes.

 

La gestion de sécurité SSAS est basée sur un modèle robuste par filtrage en utilisant les rôles. Un rôle permet d’associer des autorisations sur différents objets de la base multidimensionnelle aux différents utilisateurs. L’idée est donc de dynamiser l’accès aux données du cube en fonction de l’utilisateur connecté.

 

Pour ce faire, il faudrait ajouter ces éléments dans le datawarehouse ainsi que le cube :

1/ Au niveau du datawarehouse :

 

2/ Au niveau du cube :

 

Exemple

Considérons ce cas de figure :

 

Après avoir créé la dimension Utilisateur et le groupe de mesure Droit_Utilisateur dans le cube, on doit définir l’utilisation de la dimension comme suit :

1/ Après avoir traité le cube, on crée un nouveau rôle auquel on affecte le droit en lecture

2/ Puis on rajoute les utilisateurs ou un groupe d’utilisateurs à l’adhésion du rôle

3/ Dans « Données de la dimension », on sélectionne la dimension Implantation, on clique sur l’onglet « Avancé », puis on ajoute ce code :

 

NonEmpty (

[Dim Implantation].[Code Implantation].[Code Implantation].Members,

(

StrToMember (« [Dim Utilisateur].[Description Utilisateur].[Description Utilisateur].&[« + UserName () + »] »),

[Measures].[Droit Utilisateur Nombre]

)

)

StrToMember (« [Dim Utilisateur].[Description Utilisateur].[Description Utilisateur].&[« + UserName () + »] »)

 

C’est ce bout de code qui filtre la dimension Implantation en fonction de l’utilisateur.

 

5/ Maintenant, le rôle est créé et les permissions sont en place

6/ Pour tester, on clique sur l’icône « changer l’utilisateur » puis on sélectionne un autre utilisateur

Contactez-nous
Construisons le futur ensemble

80 bis avenue du Général Leclerc
78220 Viroflay

+33(1) 39 24 22 70

info@expertime.fr

10 rue Édouard Nignon
44372 Nantes

+33(2) 40 50 28 02

info@expertime.fr

4 place Amédée Bonnet
69002 Lyon

+33(1) 39 24 22 70

info@expertime.fr