Sécurité au niveau des lignes avec Power BI

La sécurité au niveau des lignes avec Power BI peut être utilisée pour restreindre l’accès aux données pour certains utilisateurs. Les filtres limitent l’accès aux données au niveau des lignes, et vous pouvez définir des filtres dans des rôles. Dans le service Power BI, les utilisateurs ayant accès à un espace de travail peuvent accéder aux modèles sémantiques qui se trouvent dans cet espace de travail. SNL restreint l’accès aux données uniquement pour les utilisateurs ayant des autorisations Lecteur. Cela ne s’applique pas aux administrateurs, aux membres et aux contributeurs.

Vous pouvez configurer la sécurité au niveau des lignes (SNL) pour les modèles de données importés dans Power BI avec Power BI. Vous pouvez également configurer la SNL sur les modèles sémantiques qui utilisent DirectQuery, comme SQL Server. En ce qui concerne les connexions actives Analysis Services ou Azure Analysis Services, la Sécurité au niveau des lignes est configurée dans le modèle, et non dans Power BI. L’option de sécurité ne s’affiche pas pour les modèles sémantiques de connexion active.

Définir des rôles et des règles dans Power BI Desktop

Vous pouvez définir des rôles et des règles dans Power BI Desktop. Lorsque vous publiez sur Power BI, les définitions de rôles sont également publiées.

Pour définir des rôles de sécurité :

  1. Importez les données dans votre rapport Power BI Desktop ou configurez une connexion DirectQuery.

    Notes

    Vous ne pouvez pas définir de rôles dans Power BI Desktop pour les connexions actives Analysis Services. Vous devez le faire dans le modèle Analysis Services.

  2. Sous l’onglet Modélisation, sélectionnez Gérer les rôles.

    Screenshot of the Modeling tab, highlighting Manage roles.

  3. Dans la fenêtre Gérer les rôles, sélectionnez Créer.

    Screenshot of the Manage roles window, highlighting Create.

  4. Sous Rôles, entrez un nom pour le rôle.

    Notes

    Vous ne pouvez pas définir un rôle avec une virgule, par exemple London,ParisRole.

  5. Sous Tables, sélectionnez la table à laquelle vous souhaitez appliquer une règle DAX (Data Analysis Expression).

  6. Dans la zone Expression DAX de filtre de table, entrez les expressions DAX. Cette expression retourne la valeur true ou false. Par exemple : [Entity ID] = “Value”.

    Screenshot of the Manage roles window, highlighting an example DAX expression.

    Remarque

    Vous pouvez utiliser username() dans cette expression. N’oubliez pas que username() est au format DOMAINE\nom_utilisateur dans Power BI Desktop. Dans le service Power BI et Power BI Report Server, c’est le nom d’utilisateur principal (UPN) de l’utilisateur qui est employé. Vous pouvez également utiliser userprincipalname(), qui retourne systématiquement l’utilisateur au format de son nom d’utilisateur principal (username@contoso.com).

  7. Une fois l’expression DAX créée, cochez la case au-dessus de la zone d’expression pour valider l’expression.

    Screenshot of the Table filter DAX expression window, highlighting the checkmark.

    Remarque

    Dans cette zone d’expression, utilisez des virgules pour séparer les arguments des fonctions DAX, même si vous utilisez des paramètres régionaux qui utilisent normalement des points-virgules comme séparateurs (par exemple le français ou l’allemand).

  8. Sélectionnez Enregistrer.

Vous ne pouvez pas attribuer d’utilisateurs à un rôle dans Power BI Desktop. Vous devez le faire dans le service Power BI. Dans Power BI Desktop, vous pouvez activer la sécurité dynamique en utilisant les fonctions DAX username() ou userprincipalname() et en configurant les relations appropriées.

Par défaut, le filtrage de sécurité au niveau des lignes utilise des filtres unidirectionnels, que les relations soient définies comme unidirectionnelles ou bidirectionnelles. Pour activer manuellement le filtrage croisé bidirectionnel avec la sécurité au niveau des lignes, sélectionnez la relation et cochez la case Appliquer le filtre de sécurité dans les deux directions. Notez que si une table participe à plusieurs relations bidirectionnelles, vous pouvez sélectionner cette option seulement pour l’une de ces relations. Sélectionnez cette option quand vous avez également implémenté, au niveau du serveur, la sécurité dynamique au niveau des lignes, qui s’appuie sur un nom d’utilisateur ou un ID de connexion.

Pour plus d’informations, consultez Filtrage croisé bidirectionnel avec DirectQuery dans Power BI et Sécurisation du modèle sémantique BI tabulaire.

Screenshot of the apply Security Filter.

Définir des rôles et des règles dans Power BI à l’aide de l’éditeur de sécurité amélioré au niveau des lignes (préversion)

Vous pouvez définir rapidement et facilement des rôles de sécurité et des filtres au niveau des lignes dans Power BI à l’aide de l’éditeur de sécurité amélioré au niveau des lignes. Avec cet éditeur, vous pouvez basculer entre l’utilisation de l’interface déroulante par défaut et une interface DAX. Lorsque vous publiez sur Power BI, les définitions de rôles sont également publiées.

Pour définir des rôles de sécurité à l’aide de l’éditeur de sécurité amélioré au niveau des lignes :

  1. Dans Power BI Desktop, activez la préversion en accédant à Fichiers > Options et paramètres > Options > Fonctionnalités d’évaluation, puis activez « Éditeur de sécurité amélioré au niveau des lignes ». Vous pouvez également utiliser cet éditeur dans le service en modifiant votre modèle de données dans le service Power BI.

  2. Importez les données dans votre modèle sémantique Power BI ou configurez une connexion DirectQuery.

  3. Dans le ruban, sélectionnez Gérer les rôles.

    Screenshot of the Manage roles button in the Desktop ribbon.

  4. Dans la fenêtre Gérer les rôles, sélectionnez Nouveau pour créer un rôle.

    Screenshot of creating a new role in the enhanced row-level security editor.

  5. Sous Rôles, fournissez un nom pour le rôle, puis sélectionnez Entrée.

    Screenshot of renaming a role in the enhanced row-level security editor.

  6. Sous Sélectionner des tables, sélectionnez la table à laquelle vous souhaitez appliquer un filtre de sécurité au niveau des lignes.

  7. Sous Filtrer les données, utilisez l’éditeur par défaut pour définir vos rôles. Les expressions créées retournent une valeur true ou false.

    Screenshot of an example of using the default editor in the enhanced row-level security editor.

    Remarque

    Tous les filtres de sécurité au niveau des lignes pris en charge dans Power BI ne peuvent pas être définis à l’aide de l’éditeur par défaut. Les limitations incluent les expressions qui ne peuvent aujourd’hui être définies qu’à l’aide de DAX, y compris des règles dynamiques comme username() ou userprincipalname(). Pour définir des rôles à l’aide de ces filtres, basculez vers l’éditeur DAX.

  8. Si vous le souhaitez, sélectionnez Basculer vers l’éditeur DAX pour passer à l’éditeur DAX afin de définir votre rôle. Vous pouvez revenir à l’éditeur par défaut en sélectionnant Basculer vers l’éditeur par défaut. Toutes les modifications apportées dans l’une ou l’autre interface de l’éditeur sont conservées lors du changement d’interface dans la mesure du possible.

    Screenshot of an example of using the dax editor in the enhanced row-level security editor.

    Lorsque vous utilisez l’éditeur DAX pour définir un rôle qui ne peut pas être défini dans l’éditeur par défaut et que vous tentez de basculer vers l’éditeur par défaut, un avertissement s’affiche vous indiquant que le changement d’éditeur peut provoquer la perte de certaines informations. Pour conserver ces informations, sélectionnez Annuler et poursuivez la modification de ce rôle dans l’éditeur DAX.

    Screenshot of an example error dialog when switching from the DAX to default editor in enhanced row-level security editor.

  9. Sélectionnez Enregistrer.

Valider les rôles dans Power BI Desktop

Après avoir créé vos rôles, vous pouvez tester les résultats de ces rôles dans Power BI Desktop.

  1. Sous l’onglet Modélisation, sélectionnez Voir comme.

    Screenshot of the Modeling tab, highlighting View as.

    Dans la fenêtre Afficher comme rôles qui s’ouvre, vous voyez les rôles que vous avez créés.

    Screenshot of the View as roles window with None selected.

  2. Sélectionnez un rôle que vous avez créé. Ensuite, choisissez OK pour appliquer ce rôle.

    Le rapport affiche les données pertinentes pour ce rôle.

  3. Vous pouvez également sélectionner Autre utilisateur et indiquer un utilisateur spécifique.

    Screenshot of the View as roles window with an example user entered.

    Il est préférable de fournir le nom d’utilisateur principal (UPN), car celui-ci est utilisé par le service Power BI et Power BI Report Server.

    Dans Power BI Desktop, Autre utilisateur montre des résultats différents uniquement si vous utilisez la sécurité dynamique basée sur vos expressions DAX. Dans ce cas, vous devez inclure le nom d'utilisateur ainsi que le rôle.

  4. Sélectionnez OK.

    Le rapport s’affiche en fonction de ce que les filtres RLS permettent à l’utilisateur de voir.

    Notes

    La fonctionnalité Afficher comme rôles ne fonctionne pas pour les modèles DirectQuery avec l’authentification unique (SSO) activée.

Gérer la sécurité sur votre modèle

Pour gérer la sécurité de votre modèle sémantique, ouvrez l’espace de travail dans lequel vous avez enregistré votre modèle sémantique dans le service Power BI, puis procédez comme suit :

  1. Dans le service Power BI, sélectionnez le menu Plus d’options pour un modèle sémantique. Ce menu s’affiche lorsque vous pointez sur un nom de modèle sémantique, que vous le sélectionniez depuis le menu de navigation ou la page de l’espace de travail.

    Screenshot showing the more options menu in the workspace.

    Screenshot showing the more options menu in navigation menu.

  2. Sélectionnez Sécurité.

    Screenshot showing the more options menu with Security selected.

En cliquant sur Sécurité, vous accédez à la page Sécurité au niveau des rôles, à partir de laquelle vous pouvez ajouter des membres à un rôle que vous avez créé. Le contributeur (et les rôles d’espace de travail supérieurs) voit Sécurité et peut affecter des utilisateurs à un rôle.

Utilisation des membres

Ajouter des membres

Dans le service Power BI, vous pouvez ajouter un membre au rôle en entrant l’adresse e-mail ou le nom de l’utilisateur ou du groupe de sécurité. Il n’est pas possible d’ajouter des groupes créés dans Power BI. Vous pouvez ajouter des membres externes à votre organisation.

Vous pouvez utiliser les groupes suivants pour configurer la sécurité au niveau des lignes.

Notez toutefois que les groupes Microsoft 365 ne sont pas pris en charge et ne peuvent pas être ajoutés à des rôles.

Screenshot showing how to add a member.

Le nombre de membres du rôle est indiqué entre parenthèses à côté du nom du rôle ou de Membres.

Screenshot showing members in role.

Supprimer des membres

Vous pouvez supprimer des membres en cliquant sur la croix correspondant à leur nom.

Screenshot showing how to remove a member.

Validation du rôle au sein du service Power BI

Vous pouvez vérifier que le rôle que vous avez défini fonctionne correctement dans le service Power BI en le testant.

  1. Sélectionnez Plus d’options (...) en regard du rôle.
  2. Sélectionnez Tester en tant que rôle.

Screenshot of test as role option.

Vous êtes redirigé(e) vers le rapport publié à partir de Power BI Desktop avec ce modèle sémantique, s’il existe. Il n’y a pas de tableaux de bord disponibles pour les tests avec l’option Tester en tant que rôle.

Dans l’en-tête de page est indiqué le rôle en cours d’application. Testez d’autres rôles, une combinaison de rôles ou d’une personne spécifique en sélectionnant Maintenant l’affichage sous. Ici, vous voyez des détails importants sur les autorisations relatives à l’individu ou au rôle testé. Pour plus d’informations sur la façon dont les autorisations interagissent avec la SNL, consultez l’expérience utilisateur SNL.

Screenshot of Now viewing as dropdown for a specific person.

Testez d’autres rapports connectés au modèle sémantique en sélectionnant Affichage dans l’en-tête de page. Vous pouvez uniquement tester les rapports situés dans le même espace de travail que votre modèle sémantique.

Screenshot of Viewing to select a different report to test.

Pour revenir à l’affichage normal, sélectionnez Retour à la sécurité au niveau des lignes.

Notes

La fonctionnalité Tester comme rôle ne fonctionne pas pour les modèles DirectQuery avec l’authentification unique (SSO) activée. En outre, tous les aspects d’un rapport ne peuvent pas être validés dans la fonctionnalité Tester comme rôle, notamment les visualisations Questions et réponses, les visualisations Quick insights et Copilot.

Utilisation des fonctions DAX username() et userprincipalname()

Vous pouvez utiliser les fonctions DAX username() et userprincipalname() dans votre jeu de données. Dans Power BI Desktop, celles-ci peuvent être utilisées dans des expressions. Une fois votre modèle publié, il est utilisé dans le service Power BI.

Dans Power BI Desktop, username() retourne un utilisateur au format DOMAINE\Utilisateur tandis que userprincipalname() le retourne au format user@contoso.com.

Dans le service Power BI, les fonctions username() et userprincipalname() retournent toutes les deux le nom d’utilisateur principal (UPN) de l’utilisateur. Celui-ci est similaire à une adresse e-mail.

Utilisation de la sécurité au niveau des lignes (SNL) avec des espaces de travail dans Power BI

Si vous publiez votre rapport Power BI Desktop dans un espace de travail du service Power BI, les rôles SNL sont appliqués aux membres auxquels le rôle Lecteur a été attribué dans l’espace de travail. Même si des personnes ayant le rôle Visionneuse disposent d’autorisations de générer sur le modèle sémantique, la SNL s’applique toujours. Par exemple, si ces utilisateurs se servent de la fonctionnalité Analyser dans Excel, ils ont uniquement accès aux données restreintes par SNL. Les membres de l’espace de travail disposant du rôle Administrateur, Membre ou Contributeur ont l’autorisation de modification sur le modèle sémantique. La SNL ne s’applique donc pas à eux. Si vous souhaitez que la sécurité au niveau des lignes s’applique à des personnes dans un espace de travail, vous ne pouvez leur attribuer le rôle Lecteur. En savoir plus sur les rôles dans les espaces de travail.

Considérations et limitations

Vous pouvez voir les limitations actuelles de la sécurité au niveau des lignes sur les modèles cloud ici :

  • Si vous avez précédemment défini des rôles et des règles dans le service Power BI, vous devez les recréer dans Power BI Desktop.
  • Vous ne pouvez définir la SNL que sur les modèles sémantiques créés avec Power BI Desktop. Pour activer la SNL pour les modèles sémantiques créés avec Excel, vous devez d’abord convertir vos fichiers au format PBIX (Power BI Desktop). Plus d’informations
  • Des principaux de service ne peuvent pas être ajoutés à un rôle SNL. En conséquence, la SNL ne s’applique pas aux applications qui utilisent un principal de service comme identité effective finale.
  • Seules les connexions Import et DirectQuery sont prises en charge. Les connexions actives à Analysis Services sont gérées dans le modèle local.
  • La fonctionnalité Tester comme rôle/Afficher comme rôles ne fonctionne pas pour les modèles DirectQuery avec l’authentification unique (SSO) activée.
  • La fonctionnalité « tester comme rôle/voir comme rôle » présente uniquement des rapports de l’espace de travail des modèles sémantiques.
  • La fonctionnalité « tester comme rôle/voir comme rôle » ne fonctionne pas pour les rapports paginés.

N’oubliez pas que si un rapport Power BI fait référence à une ligne avec la SNL configurée, le même message s’affiche que pour un champ supprimé ou non existant. Pour ces utilisateurs, le rapport semble corrompu.

FAQ

Question : que se passe-t-il si j’ai déjà créé des rôles et des règles pour un jeu de données dans le service Power BI ? Continuent-ils de fonctionner si je ne fais rien ?
Réponse : Non, car les visuels ne seront pas rendus correctement. Vous devez recréer les rôles et les règles dans Power BI Desktop, puis les publier sur le service Power BI.

Question : Puis-je créer ces rôles pour des sources de données Analysis Services ?
Réponse : Oui, à condition que vous ayez importé les données dans Power BI Desktop. Si vous utilisez une connexion active, vous ne pouvez pas configurer SNL au sein du service Power BI. Vous définissez SNL localement dans le modèle Analysis Services local.

Question : Puis-je utiliser la sécurité au niveau des lignes pour limiter les colonnes ou les mesures accessibles par mes utilisateurs ?
Réponse : Non, si un utilisateur a accès à une ligne particulière de données, il peut voir toutes les colonnes de données pour cette ligne. Pour restreindre l’accès aux colonnes et aux métadonnées de colonne, envisagez d’utiliser la sécurité au niveau de l’objet.

Question : La sécurité au niveau des lignes me permet-elle de masquer les données détaillées tout en accédant aux données résumées dans les visuels ?
Réponse : Non, vous sécurisez les lignes de données individuelles, mais les utilisateurs peuvent toujours voir les détails ou les données résumées.

Question : Ma source de données a déjà des rôles de sécurité définis (par exemple des rôles SQL Server ou des rôles SAP BW). Quelle est la relation entre ces rôles et SNL ?
Réponse : La réponse varie selon que vous importez des données ou que vous utilisez DirectQuery. Si vous importez des données dans votre jeu de données Power BI, les rôles de sécurité de votre source de données ne sont pas utilisés. Dans ce cas, vous devez définir la sécurité au niveau des lignes pour appliquer des règles de sécurité aux utilisateurs qui se connectent dans Power BI. Si vous utilisez DirectQuery, les rôles de sécurité de votre source de données sont utilisés. Quand un utilisateur ouvre un rapport, Power BI envoie une requête à la source de données sous-jacente, qui applique des règles de sécurité aux données en fonction des informations d’identification de l’utilisateur.

Question : un utilisateur peut-il appartenir à plusieurs rôles ?
Réponse : un utilisateur peut appartenir à plusieurs rôles, et les rôles sont additifs. Par exemple, si un utilisateur appartient aux rôles « Ventes » et « Marketing », il peut voir les données de ces deux rôles.

Vous avez des questions ? Vous avez des suggestions ? Essayez d’interroger la communauté Power BI Envoyez-nous vos idées pour améliorer Power BI