PowerBI – Sécurité au niveau des lignes RLS – dynamique
La Row Level Security (RLS) est une fonctionnalité de Power BI qui permet de restreindre l’accès aux données en fonction des utilisateurs, grâce à la définition de rôles. Elle offre la possibilité de partager un rapport tout en limitant l’accès aux données selon l’utilisateur concerné.
Contrairement à la RLS statique, qui applique des règles de sécurité fixes pour chaque utilisateur, la RLS dynamique ajuste ces règles en temps réel en fonction de l’utilisateur connecté. Cette approche permet d’appliquer des filtres de sécurité personnalisés, garantissant ainsi un accès contrôlé aux données.
Pour mieux comprendre le fonctionnement de la RLS dynamique, voici un tutoriel explicatif. Nous prendrons comme point de départ une base de données simple : un fichier Excel composé de trois feuillets.
Le premier feuillet contient une colonne « adresse mail » ainsi qu’une colonne indiquant le propriétaire correspondant.

Le deuxième feuillet comprend une colonne « Département » ainsi qu’une colonne indiquant le nom de la personne rattachée à chaque département.

Le troisième feuillet contient trois colonnes : « Pays », « Département » et « Chiffre d’Affaires (CA) »
On intègre les données dans Power BI Desktop.
On construit le modèle de données comme suit :
Les tables « Utilisateur » et « Département » sont reliées par leurs colonnes « Nom_Utilisateur » via une relation de type un-à-plusieurs. En effet, un utilisateur peut avoir accès à plusieurs départements.
Les tables « Département » et « Dim_Département » sont reliées par leurs colonnes « Département » avec une relation d’un à plusieurs, en appliquant un filtre bidirectionnel. La table « Dim_Département » a été créée en DAX et ne contient que des valeurs distinctes et uniques. Vous trouverez la formule utilisée plus bas.
Si nous avions directement relié les tables « Département » et « CA » par leurs colonnes « Département », cela aurait créé une relation de plusieurs à plusieurs, ce qui n’est pas forcément optimal pour garantir un bon niveau de sécurité des données. La création d’une table de dimension contenant une colonne « Département » avec des valeurs distinctes et uniques joue ainsi un rôle d’intermédiaire entre les tables « Département » et « CA » afin d’assurer un filtrage efficace des données.
Le lien bidirectionnel entre « Département » et « Dim_Département » est essentiel, car la RLS doit partir de la table « Utilisateur » et traverser toutes les tables jusqu’à la table « CA ». Il est donc crucial de paramétrer correctement les flèches de filtre dans le bon sens pour que la RLS fonctionne correctement.

Création du rôle
Voici les étapes pour définir le rôle à appliquer.
Pour rappel, la configuration du rôle se fait via le menu « Modélisation », situé dans la barre de menus en haut de l’écran. Une fois dans ce menu, cliquez sur « Gérer les rôles ».
Comme mentionné précédemment, le rôle sera défini sur la table « Utilisateur ». Son objectif est de filtrer les données en fonction de l’adresse e-mail de l’utilisateur. Power BI s’appuiera sur UserPrincipalName, un identifiant unique propre à chaque utilisateur au sein d’un domaine Active Directory. Il est généralement sous la forme « username@domain.com« .
Il existe également UserName, qui correspond simplement au nom d’utilisateur utilisé pour se connecter à Power BI. Contrairement à UserPrincipalName, il peut être différent de l’adresse e-mail et être configuré selon les besoins, tant qu’il reste unique au sein de l’organisation.
En résumé :
- UserPrincipalName est un identifiant unique propre à chaque utilisateur dans un environnement Active Directory.
- UserName est le nom d’utilisateur utilisé pour se connecter à Power BI, pouvant différer de l’adresse e-mail.

Le rapport publié, on le retrouve dans notre espace de travail sur Power BI service. Au niveau de jeux de données, on clique sur les 3 petits points et on sélectionne « Sécurité ».

Saisissez l’adresse e-mail de l’utilisateur ou du groupe d’utilisateurs, cliquez sur « Ajouter », puis enregistrez les modifications. Dans cet exemple, nous utiliserons l’adresse e-mail d’un utilisateur spécifique.

Finalement au niveau de l’espace de travail dans l’onglet « Accès » dans le bandeau de menu en haut on renseigne l’adresse mail de l’utilisateur ou du groupe d’utilisateurs, on renseigne un niveau d’accès en « visionneur » puis on clique sur « Ajouter ». Dans cet exemple nous continuons avec l’adresse du user

Laisser un commentaire
Il n'y a pas de commentaires pour le moment. Soyez le premier à participer !