Sécurité au niveau des lignes avec Power BIRow-level security (RLS) with 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.Row-level security (RLS) with Power BI can be used to restrict data access for given users. Les filtres limitent les données au niveau des lignes.Filters restrict data at the row level. Vous pouvez définir des filtres au sein de rôles.You can define filters within roles.

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 Desktop.You can configure RLS for data models imported into Power BI with Power BI Desktop. Vous pouvez également configurer la sécurité au niveau des lignes sur les jeux de données qui utilisent DirectQuery, tels que SQL Server.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. Auparavant, vous pouviez uniquement implémenter la sécurité au niveau des lignes dans les modèles Analysis Services locaux en dehors de Power BI.Previously, you were only able to implement RLS within on-premises Analysis Services models outside of Power BI. Pour les connexions actives Analysis Services, la sécurité au niveau des lignes doit être configurée sur le modèle local.For Analysis Services live connections, you configure Row-level security on the on-premises model. L’option de sécurité ne s’affiche pas pour les jeux de données d’une connexion active.The security option will not show up for live connection datasets.

Définir les rôles et les règles dans Power BI DesktopDefine roles and rules within Power BI Desktop

Vous pouvez définir des rôles et des règles dans Power BI Desktop.You can define roles and rules within Power BI Desktop. Lorsque vous publiez sur Power BI, les définitions de rôles sont elles aussi publiées.When you publish to Power BI, it will also publish the role definitions.

Pour définir les rôles de sécurité, vous pouvez procéder comme suit.To define security roles, you can do the following.

  1. Importez les données dans votre rapport Power BI Desktop ou configurez une connexion DirectQuery.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Note

    Vous ne pouvez pas définir les rôles Power BI Desktop pour les connexions actives Analysis Services.You cannot define roles within Power BI Desktop for Analysis Services live connections. Vous devez le faire dans le modèle Analysis Services.You will need to do that within the Analysis Services model.

  2. Sélectionnez l’onglet Modélisation.Select the Modeling tab.
  3. Sélectionnez Gérer les rôles.Select Manage Roles.

  4. Sélectionnez Créer.Select Create.

  5. Donnez un nom au rôle.Provide a name for the role.
  6. Sélectionnez la table à laquelle vous souhaitez appliquer une règle DAX.Select the table that you want to apply a DAX rule.
  7. Entrez les expressions DAX.Enter the DAX expressions. Cette expression doit renvoyer vrai ou faux.This expression should return a true or false. Par exemple : [ID d’entité] = « Valeur ».For example: [Entity ID] = “Value”.

    Note

    Vous pouvez utiliser username() dans cette expression.You can use username() within this expression. N’oubliez pas que username() est au format DOMAINE\nom_utilisateur dans Power BI Desktop.Be aware that username() will have the format of DOMAIN\username within Power BI Desktop. Dans le service Power BI, il est au format UPN de l’utilisateur.Within the Power BI service, it will be in the format of the user's UPN. Vous pouvez également utiliser userprincipalname(), qui renvoie systématiquement l’utilisateur au format de son nom d’utilisateur principal.Alternatively, you can use userprincipalname() which will always return the user in the format of their user principal name.

  8. Après avoir créé l’expression DAX, vous pouvez activer la case à cocher au-dessus de la zone d’expression pour valider l’expression.After you have created the DAX expression, you can select the check above the expression box to validate the expression.

  9. Sélectionnez Enregistrer.Select Save.

Vous ne pouvez pas affecter d’utilisateurs à un rôle au sein de Power BI Desktop.You cannot assign users to a role within Power BI Desktop. Cette opération se fait dans le service Power BI.This is done within the Power BI service. 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.You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

Par défaut, le filtrage de la sécurité au niveau des lignes utilise des filtres unidirectionnels, même si les relations sont définies à sens unique ou bidirectionnel.By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bi-directional. Vous pouvez activer manuellement le filtrage croisé bidirectionnel avec une sécurité au niveau des lignes en sélectionnant la relation et en cochant la case Appliquer le filtre de sécurité dans les deux directions.You can manually enable bi-directional cross-filter with row-level security by selecting the relationship and checking the Apply security filter in both directions checkbox. Vous devez cocher cette case lors de l’implémentation de la sécurité dynamique au niveau des lignes, où la sécurité au niveau des lignes est définie en fonction de l’ID de connexion ou du nom d’utilisateur.You should check this box when implementing dynamic row-level security, wherein you provide row-level security based on user name or login ID.

Pour plus d’informations, consultez Filtrage croisé bidirectionnel avec DirectQuery dans Power BI Desktop et Sécurisation du modèle sémantique BI tabulaire.For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Appliquer un filtre de sécurité

Validation du rôle au sein de Power BI DesktopValidating the role within Power BI Desktop

Après avoir créé votre rôle, vous pouvez tester les résultats du rôle dans Power BI Desktop.After you have created your role, you can test the results of the role within Power BI Desktop. Pour ce faire, sélectionnez Afficher comme rôles.To do this, select View As Roles.

La boîte de dialogue Afficher comme rôles permet de modifier l’affichage de ce que vous voyez pour un rôle ou utilisateur spécifique.The View as roles dialog allows you to change the view of what you are seeing for that specific user or role. Vous voyez les rôles que vous avez créés.You will see the roles you have created.

Sélectionnez le rôle que vous avez créé, puis sélectionnez OK pour appliquer ce rôle à ce que vous voyez.You select the role you created and then select OK to apply that role to what you are viewing. Les rapports affichent uniquement les données pertinentes pour ce rôle.The reports will only render the data relevant for that role.

Vous pouvez également sélectionner Autre utilisateur et indiquer un utilisateur spécifique.You can also select Other user and supply a given user. Il est préférable de fournir le nom d’utilisateur principal (UPN), puisque c’est ce que le service Power BI utilise.It is best to supply the User Principal Name (UPN) as that is what the Power BI service will use. Sélectionnez OK pour effectuer le rendu des rapports en fonction de ce que cet utilisateur peut voir.Select OK and the reports will render based on what that user can see.

Note

Dans Power BI Desktop, ceci affiche des résultats différents uniquement si vous utilisez la sécurité dynamique basée sur vos expressions DAX.Within Power BI Desktop, this will only display different results if you are using dynamic security based on your DAX expressions.

Gérer la sécurité sur votre modèleManage security on your model

Pour gérer la sécurité sur votre modèle de données, vous devez effectuer les opérations suivantes.To manage security on your data model, you will want to do the following.

  1. Cliquez sur les points de suspension (…) d’un jeu de données.Select the ellipse (…) for a dataset.
  2. Sélectionnez Sécurité.Select Security.

Cette action vous dirige vers la page de la fonctionnalité Sécurité au niveau des lignes pour ajouter des membres à un rôle que vous avez créé dans Power BI Desktop.This will take you to the RLS page for you to add members to a role you created in Power BI Desktop. L’option Sécurité est disponible uniquement pour les propriétaires du jeu de données.Only the owners of the dataset will see Security available. Si le jeu de données se trouve dans un groupe, seuls les administrateurs de ce groupe verront l’option de sécurité.If the dataset is in a Group, only Administrators of the group will see the security option.

Vous pouvez uniquement créer ou modifier des rôles dans Power BI Desktop.You can only create or modify roles within Power BI Desktop.

Utilisation des membresWorking with members

Ajouter des membresAdd members

Vous pouvez ajouter un membre au rôle en entrant l’adresse de messagerie ou le nom de l’utilisateur, du groupe de sécurité ou de la liste de distribution que vous voulez ajouter.You can add a member to the role by typing in the email address, or name, of the user, security group or distribution list you want to add. Le membre doit faire partie de votre organisation.This member has to be within your organization. Vous ne pouvez pas ajouter les groupes qui ont été créés dans Power BI.You cannot add Groups created within Power BI.

Vous pouvez également voir combien de membres font partie du rôle grâce au nombre entre parenthèses situé en regard du nom du rôle ou en regard des membres.You can also see how many members are part of the role by the number in parenthesis next to the role name, or next to Members.

Supprimer des membresRemove members

Vous pouvez supprimer des membres en cliquant sur la croix correspondant à leur nom.You can remove members by selecting the X next to their name.

Validation du rôle au sein du service Power BIValidating the role within the Power BI service

Vous pouvez vérifier que le rôle que vous avez défini fonctionne correctement en le testant.You can validate that the role you defined is working correctly by testing the role.

  1. Sélectionnez les points de suspension (...) situés en regard du rôle.Select the ellipsis (...) next to the role.
  2. Sélectionnez Tester les données comme rôleSelect Test data as role

Vous verrez ensuite les rapports qui sont disponibles pour ce rôle.You will then see reports that are available for this role. Les tableaux de bord ne s’affichent pas dans cette vue.Dashboards are not presented in this view. Dans la barre bleue située au-dessus, vous voyez ce qui est appliqué.In the blue bar above, you will see what is being applied.

Vous pouvez tester les autres rôles, ou une combinaison de rôles, en sélectionnant Affichage actuel comme.You can test other roles, or combination of roles, by selecting Now viewing as.

Vous pouvez choisir d’afficher les données assignées à une personne spécifique, ou vous pouvez sélectionner une combinaison de rôles disponibles pour tester leur fonctionnement.You can choose to view data as a specific person, or you can select a combination of available roles to validate they are working.

Pour revenir à l’affichage normal, sélectionnez Retour à la sécurité au niveau des lignes.To return to normal viewing, select Back to Row-Level Security.

Utilisation des fonctions DAX username() et userprincipalname()Using the username() or userprincipalname() DAX function

Vous pouvez utiliser les fonctions DAX username() et userprincipalname() dans votre jeu de données.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Dans Power BI Desktop, celles-ci peuvent être utilisées dans des expressions.You can use them within expressions in Power BI Desktop. Une fois votre modèle publié, il est utilisé dans le service Power BI.When you publish your model, it will be used within the Power BI service.

Dans Power BI Desktop, username() retourne un utilisateur au format DOMAINE\Utilisateur tandis que userprincipalname() le retourne au format user@contoso.com.Within Power BI Desktop, username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of 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.Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). Celui-ci est similaire à une adresse e-mail.This looks similar to an email address.

Utilisation de la sécurité au niveau des lignes (SNL) avec des espaces de travail d’applications dans Power BIUsing RLS with app workspaces in Power BI

Si vous publiez votre rapport Power BI Desktop dans un espace de travail d’applications du service Power BI, les rôles sont appliqués aux membres en lecture seule.If you publish your Power BI Desktop report to an app workspace within the Power BI service, the roles will be applied to read-only members. Vous devez alors indiquer dans les paramètres de l’espace de travail d’applications que les membres peuvent uniquement afficher du contenu Power BI.You will need to indicate that members can only view Power BI content within the app workspace settings.

Avertissement

Si vous avez configuré l’espace de travail d’applications afin que les membres disposent d’autorisations de modification, les rôles SNL ne s’appliquent pas à eux.If you have configured the app workspace so that members have edit permissions, the RLS roles will not be applied to them. Les utilisateurs sont en mesure de voir toutes les données.Users will be able to see all of the data.

LimitesLimitations

Voici une liste des limites actuelles pour la sécurité au niveau des lignes sur les modèles cloud.Here is a list of the current limitations for row-level security on cloud models.

  • Si vous aviez précédemment des rôles/règles définis dans le service Power BI, vous devez les recréer dans Power BI Desktop.If you previously had roles/rules defined within the Power BI service, you will need to recreate them within Power BI Desktop.
  • Vous pouvez définir la sécurité au niveau des lignes uniquement sur les jeux de données créés à l’aide du client Power BI Desktop.You can define RLS only on the datasets created using Power BI Desktop client. Pour activer la sécurité au niveau des lignes pour les jeux de données créés avec Excel, vous devez d’abord convertir vos fichiers au format PBIX.If you want to enable RLS for datasets created with Excel, you will need to convert your files into PBIX files first. En savoir plusLearn more
  • Seules les connexions ETL et DirectQuery sont prises en charge.Only ETL, and DirectQuery connections are supported. Les connexions actives à Analysis Services sont gérées dans le modèle local.Live connections to Analysis Services are handled in the on-premises model.
  • Le moteur Questions et réponses et Cortana ne sont pour l’instant pas pris en charge avec la sécurité au niveau des lignes.Q&A and Cortana is not supported with RLS at this time. La zone d’entrée de Q&R n’est pas disponible pour les tableaux de bord si la sécurité au niveau des lignes est configurée sur tous les modèles.You will not see the Q&A input box for dashboards if all models have RLS configured. Cela est prévu, mais aucune date n’est disponible pour l’instant.This is on the roadmap, but a timeline is not available.
  • Le partage externe n’est actuellement pas pris en charge avec les jeux de données qui utilisent la sécurité au niveau des lignes.External sharing is not currently supported with datasets that use RLS.
  • Pour un modèle donné, vous pouvez attribuer jusqu’à 1 000 principaux Azure AD (utilisateurs individuels ou groupes de sécurité) aux rôles de sécurité.For any given model, the maximum number of Azure AD principals (i.e. individual users or security groups) that can be assigned to security roles is 1,000. Pour attribuer un grand nombre d’utilisateurs à des rôles, préférez les groupes de sécurité aux utilisateurs individuels.To assign large numbers of users to roles, be sure to assign security groups, rather than individual users.

Problèmes connusKnown issues

Il existe un problème connu : un message d’erreur s’affiche quand vous tentez de publier à partir de Power BI Desktop un élément publié précédemment.There is a known issue where you will receive an error message when trying to publish from Power BI Desktop if it was previously published. Le scénario est le suivant.The scenario is as follows.

  1. Anne possède un jeu de données publié sur le service Power BI et a configuré la sécurité au niveau des lignes.Anna has a dataset that is publised to the Power BI service and has configured RLS.
  2. Anna met à jour le rapport dans Power BI Desktop et le publie une nouvelle fois.Anna updates the report in Power BI Desktop and re-publishes.
  3. Une erreur s’affiche.Anna will receive an error.

Solution de contournement : publiez à nouveau le fichier Power BI Desktop à partir du service Power BI jusqu'à ce que ce problème soit résolu.Workaround: Re-publish the Power BI Desktop file from the Power BI service until this issue is resolved. Pour cela, sélectionnez Obtenir des données > Fichiers.You can do that by select Get Data > Files.

FORUM AUX QUESTIONSFAQ

Question : Que se passe-t-il si j’ai précédemment créé des rôles/règles pour un jeu de données dans le service Power BI ?Question: What if I had previously created roles/rules for a dataset in the Power BI service? Continuent-ils de fonctionner si je ne fais rien ?Will they still work if I do nothing?
Réponse : Non.Answer: No. Les éléments visuels ne sont pas rendus correctement.Visuals will not render properly. Vous devez recréer les rôles/règles dans Power BI Desktop, puis les publier sur le service Power BI.You will have to re-create the roles/rules within Power BI Desktop and then published to the Power BI service.

Question : Puis-je créer ces rôles pour des sources de données Analysis Services ?Question: Can I creates these roles for Analysis Services data sources?
Réponse : Oui si vous avez importé les données dans Power BI Desktop.Answer: You can if you imported the data into Power BI Desktop. Si vous utilisez une connexion active, vous n’êtes pas en mesure de configurer la sécurité au niveau des lignes (RLS) au sein du service Power BI.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Celle-ci se définit localement dans le modèle Analysis Services.This is defined within the Analysis Services model on-premises.

Question : Puis-je utiliser la sécurité au niveau des lignes pour limiter les colonnes ou les mesures accessibles par mes utilisateurs ?Question: Can I use RLS to limit the columns or measures accessible by my users?
Réponse : non.Answer: No. 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.If a user has access to a particular row of data, they can see all the columns of data for that row.

Question : La sécurité au niveau des lignes m’autorise-t-elle à masquer les données détaillées tout en accédant aux données résumées dans les visuels ?Question: Does RLS allow me to hide detailed data but give access to data summarized in visuals?
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.Answer: No, you secure individual rows of data but users can always see either the details or summarized data.

Étapes suivantesNext steps

Sécurité au niveau des lignes avec Power BI DesktopRow-level security (RLS) with Power BI Desktop

D’autres questions ?More questions? Essayez d’interroger la communauté Power BITry asking the Power BI Community