Configurer la Sécurité au niveau des lignes avec la méthode dynamique

Effectué

La définition de règles statiques est simple et efficace. Cependant, gardez à l’esprit les inconvénients suivants : la configuration de règles statiques peut impliquer des efforts importants de création et de configuration. Cela vous oblige également à mettre à jour et republier le jeu de données lorsque de nouvelles régions ou de nouveaux départements sont intégrés.

Si vous devez configurer de nombreuses règles et que vous prévoyez d’en ajouter de nouvelles à l’avenir, envisagez plutôt de créer des règles dynamiques, ce qui évite la nécessité d’une maintenance continue.

La définition de règles dynamiques est simple et efficace lorsqu’une table de modèle stocke des valeurs de nom d’utilisateur ou d’adresse e-mail. Elles vous permettent d’appliquer une conception SNL basée sur les données. Par exemple, lorsque des vendeurs sont ajoutés à la table Employees ou en sont supprimés (ou sont affectés à différentes régions), cette approche de conception fonctionne parfaitement.

En tant qu’administrateur chez Tailwind Traders, vous souhaitez que la Sécurité au niveau des lignes Power BI ne montre les ventes qu’à la personne qui les a effectuées. Dans cet exemple, Russel King a réalisé quatre ventes. Lorsqu’il consulte votre état, Russel ne doit voir que les ventes dont il est responsable et aucune autre. Vous pouvez configurer la Sécurité au niveau des lignes exactement comme vous l’avez fait avant, avec une seule modification. Au lieu de créer quatre rôles, vous ne devez en créer qu’un seul. Le filtre DAX pour ce rôle ressemble à l’image suivante :

Notez qu’à la place de la chaîne fixe, par exemple Jeu ou Habillement, une fonction DAX est utilisée dans le filtre de Sécurité au niveau des lignes. La fonction userprincipalname() compare l’adresse e-mail de la table Employees avec l’adresse e-mail saisie par l’utilisateur lors de la connexion au service Power BI. Si Russel King se connecte au service Power BI à l’aide de l’adresse e-mail russel@tailwindtraders.com, le système compare cette valeur à l’adresse e-mail de la table Employees. En supposant qu’une relation a été créée entre les tables Employees et Sales, Russel voit uniquement ses quatre ventes.

Il existe trois fonctions DAX spécifiques :

  • USERNAME ou USERPRINCIPALNAME : renvoie l’utilisateur authentifié Power BI sous forme de valeur textuelle.

  • CUSTOMDATA : renvoie la propriété CustomData transmise dans la chaîne de connexion. Les outils de reporting autres que Power BI qui se connectent au jeu de données à l’aide d’une chaîne de connexion peuvent définir cette propriété, comme Microsoft Excel.

Remarque

Sachez que la fonction USERNAME renvoie l’utilisateur au format DOMAIN\username lorsqu’elle est utilisée dans Power BI Desktop. Cependant, lorsqu’elle est utilisée dans le service Power BI, elle renvoie le format du nom d’utilisateur principal (UPN) de l’utilisateur, par exemple username@adventureworks.com. Vous pouvez également utiliser la fonction USERPRINCIPALNAME, qui renvoie toujours l’utilisateur au format du nom d’utilisateur principal.