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 l’accès aux données au niveau des lignes, et vous pouvez définir des filtres dans des rôles.Filters restrict data access at the row level, and you can define filters within roles. N’oubliez pas que, dans le service Power BI, les membres d’un espace de travail ont accès aux jeux de données de l’espace de travail.Be aware that in the Power BI service, members of a workspace have access to datasets in the workspace. La sécurité au niveau des lignes (SNL) ne restreint pas cet accès aux données.RLS doesn't restrict this data access.

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. 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 Desktop.For Analysis Services or Azure Analysis Services live connections, you configure Row-level security in the model, not in Power BI Desktop. 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 des rôles et des règles dans Power BI DesktopDefine roles and rules in 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. Quand vous publiez sur Power BI, les définitions de rôles sont aussi publiées.When you publish to Power BI, it also publishes the role definitions.

Pour définir des rôles de sécurité, effectuez les étapes suivantes.To define security roles, follow these steps.

  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.

    Notes

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

  2. Sous l’onglet Modélisation, sélectionnez Gérer les rôles.From the Modeling tab, select Manage Roles.

    Sélectionner Gérer les rôles

  3. Dans la fenêtre Gérer les rôles, sélectionnez Créer.From the Manage roles window, select Create.

    Sélectionner Créer

  4. Sous Rôles, entrez un nom pour le rôle.Under Roles, provide a name for the role.

  5. Sous Tables, sélectionnez la table à laquelle vous souhaitez appliquer une règle DAX.Under Tables, select the table to which you want to apply a DAX rule.

  6. Dans la zone Expression DAX de filtre de table, entrez les expressions DAX.In the Table filter DAX expression box, enter the DAX expressions. Cette expression retourne la valeur true ou false.This expression returns a value of true or false. Par exemple : [Entity ID] = “Value”.For example: [Entity ID] = “Value”.

    Fenêtre Gérer les rôles

    Notes

    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() has the format of DOMAIN\username within 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é.Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). Vous pouvez également utiliser userprincipalname() , qui retourne systématiquement l’utilisateur au format de son nom d’utilisateur principal, username@contoso.com.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, 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.After you've created the DAX expression, select the checkmark above the expression box to validate the expression.

    Valider l’expression DAX

    Notes

    Dans cette zone d’expression, vous 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).In this expression box, you use commas to separate DAX function arguments even if you're using a locale that normally uses semicolon separators (e.g. French or German).

  8. Sélectionnez Enregistrer.Select Save.

Vous ne pouvez pas attribuer d’utilisateurs à un rôle dans Power BI Desktop.You can't assign users to a role within Power BI Desktop. Vous devez le faire dans le service Power BI.You assign them in 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. Il est préférable de cocher cette case quand vous avez également implémenté une sécurité dynamique au niveau des lignes au niveau du serveur, laquelle se base sur un nom d’utilisateur ou un ID de connexion.You should check this box when your've also implemented dynamic row-level security at the server level, where row-level security is 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é

Valider les rôles dans Power BI DesktopValidate the roles within Power BI Desktop

Après avoir créé vos rôles, vous pouvez tester les résultats de ces rôles dans Power BI Desktop.After you've created your roles, test the results of the roles within Power BI Desktop.

  1. Sous l’onglet Modélisation, sélectionnez Afficher comme rôles.From the Modeling tab, select View as Roles.

    Sélectionner Afficher comme rôles

    Dans la fenêtre Afficher comme rôles qui s’ouvre, vous voyez les rôles que vous avez créés.The View as roles window appears, where you see the roles you've created.

    Fenêtre Afficher comme rôles

  2. Sélectionnez un rôle que vous avez créé, puis OK pour l’appliquer.Select a role you created, and then select OK to apply that role.

    Le rapport affiche les données pertinentes pour ce rôle.The report renders the data relevant for that role.

  3. Vous pouvez également sélectionner Autre utilisateur et indiquer un utilisateur spécifique.You can also select Other user and supply a given user.

    Sélectionner Autre utilisateur

    Il est préférable de fournir le nom d’utilisateur principal (UPN), celui-ci étant utilisé par le service Power BI et Power BI Report Server.It's best to supply the User Principal Name (UPN) as that's what the Power BI service and Power BI Report Server use.

    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.Within Power BI Desktop, Other user displays different results only if you're using dynamic security based on your DAX expressions.

  4. Sélectionnez OK.Select OK.

    Le rapport est affiché en fonction de ce que cet utilisateur peut voir.The report renders based on what that user can see.

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.

    Appliquer le filtre de sécurité dans les deux directions

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. 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 ajouter des membres externes à votre organisation.You can add members external to your organization.

Ajouter un membre

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.

Membres du rôle

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.

Supprimer un membre

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 Plus d’options (...) en regard du rôle.Select More options (...) next to the role.
  2. Sélectionnez Tester les données comme rôleSelect Test data as role

Tester comme rôle

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.

Affichage actuel en tant que <rôle>

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.

Tester d’autres rôles

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 dans Power BIUsing RLS with workspaces in Power BI

Si vous publiez votre rapport Power BI Desktop dans un espace de travail du service Power BI, les rôles sont appliqués aux membres en lecture seule.If you publish your Power BI Desktop report to a 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 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 workspace settings.

Avertissement

Si vous avez configuré l’espace de travail pour que les membres disposent d’autorisations de modification, les rôles SNL ne leur sont pas appliqués.If you have configured the 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.

Paramètres de groupe

LimitesLimitations

Les limitations actuelles pour la sécurité au niveau des lignes sur les modèles cloud sont les suivantes :The current limitations for row-level security on cloud models are as follows:

  • 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.If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • Vous pouvez définir la sécurité au niveau des lignes (SNL) uniquement sur les jeux de données créés à l’aide de Power BI Desktop.You can define RLS only on the datasets created with Power BI Desktop. 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 (Power BI Desktop).If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. En savoir plus.Learn more.

  • Seules les connexions Import et DirectQuery sont prises en charge.Only Import 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.

Problèmes connusKnown issues

Il existe un problème connu : vous obtenez un message d’erreur quand vous tentez de publier un rapport déjà publié à partir de Power BI Desktop.There's a known issue where you'll get an error message if you try to publish a previously published report from Power BI Desktop. Le scénario est le suivant :The scenario is as follows:

  1. Anna 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 published to the Power BI service and has configured RLS.

  2. Anna met à jour le rapport dans Power BI Desktop et le republie.Anna updates the report in Power BI Desktop and republishes.

  3. Anna reçoit une erreur.Anna receives an error.

Solution de contournement : republiez le fichier Power BI Desktop à partir du service Power BI jusqu’à ce que ce problème soit résolu.Workaround: Republish 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 selecting Get Data > Files.

FORUM AUX QUESTIONSFAQ

Question : Que se passe-t-il si j’avais déjà créé des rôles et des règles pour un jeu de données dans le service Power BI ?Question: What if I had previously created roles and 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, car les visuels ne seront pas rendus correctement.Answer: No, visuals will not render properly. Vous devez recréer les rôles et les règles dans Power BI Desktop, puis les publier sur le service Power BI.You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

Question : Puis-je créer ces rôles pour des sources de données Analysis Services ?Question: Can I create these roles for Analysis Services data sources?
Réponse : Oui, à condition que vous ayez 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 SNL 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, 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.Answer: No, if a user has access to a particular row of data, they can see all the columns of data for that row.

Question : Avec SNL, puis-je masquer les données détaillées tout en donnant accès aux données résumées dans les visuels ?Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Réponse : Non, vous sécurisez des 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 the summarized data.

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).Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). Quelle est la relation entre ces éléments et SNL ?What is the relationship between these and RLS?
Réponse : La réponse varie selon que vous importez des données ou que vous utilisez DirectQuery.Answer: The answer depends on whether you're importing data or using 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.If you're importing data into your Power BI dataset, the security roles in your data source aren't used. 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.In this case, you should define RLS to enforce security rules for users who connect in Power BI. Si vous utilisez DirectQuery, les rôles de sécurité de votre source de données sont utilisés.If you're using DirectQuery, the security roles in your data source are used. 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.When a user opens a report Power BI sends a query to the underlying data source, which applies security rules to the data based on the user's credentials.

Étapes suivantesNext steps

Pour plus d’informations en rapport avec cet article, consultez les ressources suivantes :For more information related to this article, check out the following resources: