Vous êtes nombreux à me demander s’il est possible d’ajouter de la sécurité dans Power BI, afin de créer un seul rapport pour tous les usagers mais qui afficherait seulement les données que chaque usager est autorisé à voir. On peut penser par exemple à un rapport de ventes unique, qui serait partagé avec tous les gestionnaires de succursales et où chaque gestionnaire ne verrait que les données de sa succursale. Cet article vise à vous montrer la fonctionnalité de Power BI permettant d’ajouter ce que l’on nomme de la sécurité par ligne ou RLS (row level security). Un autre article suivra pour vous expliquer comment récupérer les informations de sécurité à la source, lorsque disponibles. Ici, je vous présente donc les bases des règles de sécurité RLS dans Power BI.
Scénario de base pour illustrer les règles RLS dans Power BI
Afin d’illustrer la fonctionnalité de sécurité par ligne dans Power BI, nous allons utiliser des données en provenance d’un fichier (donc aucune sécurité à la source). Ceci pourrait être une extraction d’un système par exemple. Ci-dessous, vous pouvez apercevoir les données avec lesquelles nous allons travailler. Nous avons des dépenses par groupe et unité, que nous pouvons analyser par année. Notez que ce rapport se trouve dans Power BI Desktop (et non dans Power BI Service). C’est là que tout commence.
Créer des rôles de sécurité, la base des règles RLS dans Power BI
Pour créer un rôle de sécurité, vous devez d’abord aller dans le menu Modélisation et choisir Gérer les rôles.
C’est ici que vous pourrez créer des rôles, en cliquant sur le bouton Créer.
Supposons que nous souhaitons créer un rôle de sécurité pour chacun des groupes. Pour ce faire, nous allons donc créer un premier groupe, que nous allons nommer Administration.
Le rôle de sécurité doit être créé en DAX et il est donc possible d’ajouter des règles de sécurité assez complexes. Toutefois, la plupart du temps, ce que l’on cherche à faire, c’est un filtre sur une colonne. C’est exactement notre cas dans cet exemple. Nous pouvons donc simplement cliquer sur les … à la droit de la table Budget et choisir Ajouter un filtre à la colonne Groupe.
Il suffira ensuite d’inscrire la fonction DAX ci-dessous.
Nous pouvons répéter le tout pour chacun des groupes. Dans notre exemple, nous avons créé les rôles pour les 3 premiers groupes.
Vous devez analyser de grandes quantités de données et les présenter dans des rapports et tableaux de bord, avec des indicateurs de performance pertinents ? Développez vos compétences avec nos formations en Power BI en français ou en anglais. |
---|
Tester les rôles de sécurité RLS dans Power BI
Une fois que les rôles de sécurité sont créés, il est possible de les tester, en cliquant sur le bouton Afficher comme rôles.
Ceci vous permettra d’afficher votre rapport selon un rôle de sécurité précis.
Par exemple, en choisissant le rôle de sécurité Administration, nous pouvons maintenant avoir une idée de ce que les usagers de ce groupe de sécurité apercevront lorsqu’ils ouvriront le rapport. En fonction de leurs informations de connexion, le rapport qu’ils verront sera filtré pour ne montrer que les résultats du groupe Administration. Il sera impossible pour eux de voir les données des autres groupes.
Voici maintenant ce que verront les usagers du groupe Contingency Accounts.
Et finalement, voici ce que verront les usagers du groupe Corporate.
Associer des usagers à des rôles de sécurité
Pour associer des usagers ou des groupes d’usagers à des rôles de sécurité, il faut aller dans Power BI Service et repérer notre jeu de données et cliquer ensuite sur les … (ceci suppose évidemment que l’on a publié notre .pbix dans le service).
Il faudra ensuite choisir Sécurité.
Et finalement, il faudra ajouter les courriels des usagers ou des groupes d’usagers associés à chacun des rôles. Vous voyez que pour le moment, aucun usager n’a encore été associé à un rôle de sécurité. Dès que vous en ajouterez, vous verrez le nombre entre parenthèses.
Accédez à la deuxième partie de cet article ici: Power BI : Contrôler qui voit quoi (2 de 2).
Formation complémentaire
Vous devez manipuler et analyser beaucoup de données et êtes à la recherche d’un outil BI (Business Intelligence) performant, en mode libre-service ? Suivez la formation Power BI – Niveau 1.
Voici quelques commentaires d’apprenants ayant suivi cette formation :
Bonjour,
Merci pour l’article.
J’ai une question si vous permettez: Est ce que c’est possible de gérer le multilingue avec Power BI?
Je m’explique: Faire en sorte que le rapport s’affiche en français ou anglais (les libellé et les valeurs) suivant les paramètre de langue de notre navigateur?
Pour les valeurs évidement on va avoir dans la source une colonne pour les valeurs en FR et une autre pour les valeurs en EN.
Ceci est très facilement géré avec SAP BO.
Par avance merci
bonjour,
est ce que possible de mettre une regle pour donner des roles pour afficher des fenetres.
exemple le directeur ne voit pas tout les onglets que page 1 et page 2 et vice versa..
merci
Bonjour,
Il n’est pas possible de faire ça avec les rôles RLS malheureusement.
Il existe par contre une panoplie d’autres options. Par exemple, vous pourriez insérer dans votre rapport des liens URL vers d’autres rapports auxquels seulement les directeurs ont accès.
Merci!
Bonjour Aurélie,
Je rebondis sur votre réponse : pouvez-vous détailler la panoplie d’autres options 🙂 ?
L’utilisation de plusieurs rapports peu être compliquée à gérer, notamment lors des mise à jour des données lorsqu’on ne peut pas l’automatiser.
Merci beaucoup !
Bonjour Guillaume,
La meilleure option pour votre situation serait d’utiliser les applications et créer différentes audiences selon qui doit voir quelles pages.
Vous pouvez consulter cet article pour en savoir plus : https://www.lecfomasque.com/la-securite-des-applications-power-bi/
En espérant que ça vous aide.
Audrée
Bonjour,
je souhaite mettre en place une restriction de l’accès aux données uniquement sur l’extraction.
En effet, tous mes onglets servent de benchmark, donc tout le monde doit tout voir.
Par contre, dans l’extraction, je donne un détail par client, et là je veux que la personne ne puisse voir que ses clients
Bonjour,
Qu’entendez-vous par extraction? La possibilité d’extraire les données d’un visuel pour les analyser dans Excel? Si c’est de cette option qu’il s’agit, il faudrait une sécurité pour que chacun voie seulement leurs clients et créer une page de rapport pour le détail des clients. Ensuite, créer une table sommaire pour les benchmarks qui ne contient pas le détail par client.
Je vous invite à poser votre question sur le forum si vous avez besoin d’aide à ce sujet.
https://www.lecfomasque.com/forums/
Au plaisir,
Kim
Bonjour Kim,
je parle de la fonction PowerBI d’extraction, depuis un graphique par exemple, pour afficher le détail dans une page cible.
Si j’ai un histogramme des ventes par Vendeur, je peux cliquer sur une des barres (donc un vendeur) et extraire dans une autre page le détail des ventes de ce vendeur.
Je veux que tous les vendeurs puisse voir l’histogramme, pour se benchmarker, mais qu’il ne puisse pas accéder au détail des ventes de leurs collègues
Merci d’avance
Sonia
Bonjour, j’ai trouvé la solution : je dois implémenter un RLS dynamique