Profitez du mois de mai pour vous former gratuitement !
Profitez du mois de mai pour vous former gratuitement !
Profitez du mois de mai pour vous former gratuitement !
Je m'inscris

RLS Power BI : Sécuriser et optimiser ses performances sur Power Bi

Découvrez comment configurer le rls power bi pour sécuriser vos données avec des rôles dynamiques et filtres dax. exemples pratiques et astuces expertes

Erwan Eygay
Lead Teacher & Data Practitioner @DataBird
Mis à jour le
9/5/2025

Découvrez notre formation outil dédiée à Power BI.

Découvrir

Vous galérez à restreindre l'accès à certaines données sensibles dans vos rapports Power BI et souhaitez apprendre et vous former ? 😤 

Le Row Level Security (RLS) est peut-être la solution que vous cherchez pour sécuriser vos informations au niveau des lignes. 

Dans ce guide, je vous explique comment configurer des rôles ultra-précis, maîtriser les filtres DAX, et éviter les pièges courants pour une gouvernance 100% optimisée de vos données Power BI.

Comprendre la sécurité au niveau des lignes dans Power BI

Qu'est-ce que la RLS dans Power BI ?

La RLS (Row Level Security) dans Power BI filtre les données au niveau des lignes selon les rôles définis. Elle permet de restreindre l'accès aux informations sensibles en appliquant des règles DAX. 

Son rôle clé : segmenter les données pour que chaque utilisateur ne voie que ce qui lui est pertinent, assurant sécurité et conformité légale. Selon Microsoft, cette fonctionnalité est intégrée nativement dans l'outil.

La RLS garantit la confidentialité des données en filtrant les lignes accessibles, que ce soit pour des données financières ou des informations personnelles. 

Elle s'intègre à Power BI Desktop pour créer des rôles, puis au service Power BI pour les appliquer aux utilisateurs. En combinant sécurité et simplicité, elle permet de partager des rapports sans exposer des données sensibles, tout en maintenant un modèle optimisé.

Les types de RLS dans Power BI

Le RLS statique applique des règles fixes définies manuellement, utile pour des accès stables comme le filtrage par région ou projet spécifique. 

Un directeur régional verra uniquement les données de sa zone, par exemple. Simple à configurer, il demande toutefois une mise à jour manuelle en cas d'évolution des équipes ou des structures.

Le RLS dynamique adapte les filtres en temps réel selon l'utilisateur connecté, via des fonctions DAX comme username() ou userprincipalname(). 

Par exemple, un vendeur accède automatiquement à ses propres ventes. Plus flexible que le statique, il réduit la gestion manuelle et s'ajuste aux changements organisationnels. Pour apprendre à l'implémenter, le tutoriel Power BI qu'on à fait est une ressource précieuse.

Le RLS dynamique hiérarchique sert dans des structures organisées en niveaux. Un manager visualise les données de son équipe, tandis qu'un employé individuel ne voit que les siennes. 

Cela nécessite une modélisation DAX avancée pour intégrer la hiérarchie dans les règles de filtrage, garantissant une sécurité fine et adaptée aux équipes complexes.

Différence entre RLS et OLS

Le RLS filtre les lignes des tables, limitant les données visibles par utilisateur. L'OLS sécurise tables ou colonnes entières, masquant des éléments comme des colonnes financières. 

Pour les utilisateurs non autorisés, ces objets deviennent invisibles, renforçant la sécurité au-delà du filtrage ligne par ligne.

L'OLS protège des tables ou colonnes sensibles en les rendant invisibles aux utilisateurs non autorisés. Contrairement au RLS, il agit sur la structure du modèle plutôt que sur les données elles-mêmes. 

Selon Microsoft, les deux peuvent être combinés pour une sécurité renforcée : le RLS filtre les lignes, l'OLS masque les objets critiques. L'OLS reste cependant exclusif à Power BI Premium.

Comparaison RLS vs OLS
Aspect RLS (Row Level Security) OLS (Object Level Security)
Niveau de filtrage Filtre les données au niveau des lignes Sécurise des tables ou colonnes entières
Utilisation principale Restreindre l'accès par région, département ou rôle utilisateur Masquer des colonnes sensibles (ex : données financières)
Limitations Impact sur les performances avec des règles complexes Non disponible nativement dans Power BI Desktop
Disponibilité Disponible dans toutes les versions de Power BI Exclusif à Power BI Premium (y compris Premium per User)
Configuration Géré via Power BI Desktop et Service Nécessite des outils externes comme Tabular Editor
Robustesse Expressions DAX pouvant ralentir les requêtes Masque les métadonnées pour une sécurité renforcée

Pour une sécurité optimale, combinez RLS et OLS. Le RLS filtre les lignes selon les rôles, tandis que l'OLS masque des colonnes ou tables sensibles. Cela garantit que les utilisateurs ne voient que les données pertinentes, avec une couche supplémentaire de protection pour les éléments critiques comme les salaires ou les données personnelles.

Comment fonctionne concrètement le RLS dans Power BI

Présentation du mécanisme de filtrage des données avec le RLS dans Power BI

Le RLS filtre les lignes de données selon les rôles définis. Quand un utilisateur accède à un rapport, Power BI applique automatiquement les filtres DAX associés à son rôle. Cela garantit qu'il ne voit que les données pertinentes, sans exposer des informations sensibles à des personnes non autorisées.

  • Créer des rôles dans Power BI Desktop via l'option "Gérer les rôles" sous l'onglet Modélisation
  • Définir des filtres DAX spécifiques pour chaque rôle afin de restreindre l'accès au niveau des lignes
  • Publier le modèle de données Power BI Desktop vers le service Power BI
  • Gérer la sécurité des rôles dans Power BI Service en attribuant des utilisateurs ou groupes aux rôles
  • Tester les règles RLS avec "Afficher en tant que" dans Desktop et "Tester en tant que rôle" dans le service

Explication des relations entre tables et leur importance dans l'efficacité du RLS

Les relations entre tables déterminent comment les filtres RLS se propagent à travers le modèle de données. Une bonne modélisation permet de relier les autorisations des utilisateurs aux données à filtrer. Par exemple, une table des utilisateurs liée à une table des ventes permet d'appliquer des restrictions précises aux données visibles par chaque commercial.

Implémentation du RLS dans votre environnement Power BI

Création de rôles dans Power BI Desktop

Pour créer des rôles dans Power BI Desktop, dirigez-vous vers l'onglet "Modélisation" et sélectionnez "Gérer les rôles". Ici, vous définirez les noms des rôles et leurs règles de filtrage DAX associées.

Les règles DAX pour les rôles RLS utilisent des fonctions comme USERNAME() ou USERPRINCIPALNAME() pour cibler les utilisateurs. Évitez LOOKUPVALUE() qui ralentit les performances. Optez pour un modèle en étoile avec des relations actives. Testez vos règles en utilisant "Afficher en tant que" pour valider leur efficacité avant publication.

Structurez vos rôles de manière claire, par exemple "Ventes_Nord" pour la région Nord. Nommez-les de façon descriptive pour faciliter leur gestion. Utilisez des groupes de sécurité Azure AD pour simplifier l'attribution des membres aux rôles, surtout en environnement multi-utilisateurs.

Déploiement et gestion des rôles dans Power BI Service

Une fois vos rôles configurés dans Power BI Desktop, publiez le rapport sur le service Power BI. Dans les paramètres de sécurité du modèle sémantique, attribuez des utilisateurs ou groupes Azure AD aux rôles créés. Vérifiez que les connexions DirectQuery n'utilisent pas l'authentification intégrée pour les lecteurs.

Pour gérer les rôles à grande échelle, utilisez des groupes de sécurité Azure AD au lieu d'ajouter les utilisateurs un par un. Testez les rôles dans le service Power BI via "Tester en tant que rôle" pour éviter les fuites de données. Assurez-vous que les utilisateurs sont bien identifiés par leurs comptes Azure AD. Le guide du Power BI Report Service détaille ces bonnes pratiques de déploiement.

{{cours-gratuit-power-bi="/brouillon"}}

Cas pratiques et exemples d'utilisation du RLS

RLS par région géographique ou département

Pour sécuriser les données par région, créez des rôles RLS associant chaque utilisateur à sa zone géographique. Alice (Nord) et Bob (Sud) ne voient que leurs ventes respectives grâce à des règles DAX dans Power BI Desktop.

Un modèle efficace inclut une table de dimension géographique (régions/départements) liée à la table de faits. Utilisez des expressions DAX comme `[Région] = USERPRINCIPALNAME()` ou des tables de mapping pour segmenter l'accès. Cela garantit l'accès aux données.

Testez votre RLS géographique avec l'option "Afficher en tant que" dans Power BI Desktop. Vérifiez qu'aucune fuite de données ne survient entre régions. En cas d'erreur, revérifiez les relations entre tables et les expressions DAX utilisées.

RLS dynamique basé sur l'identité de l'utilisateur

Le RLS dynamique utilise `USERPRINCIPALNAME()` pour identifier l'utilisateur connecté. Cette fonction renvoie son adresse e-mail Azure AD, utilisée pour filtrer les données dans les expressions DAX. Contrairement à `USERNAME()`, elle reste cohérente entre Desktop et Service.

Pour un modèle dynamique, créez une table de mapping utilisateur-région. Liez cette table à vos données via des relations actives. Par exemple, une table "Accès" avec des colonnes "Utilisateur" et "Région" permet de cibler précisément les données visibles par chaque employé.

Optimisation des performances et bonnes pratiques RLS

Impact du RLS sur les performances de Power BI

Le RLS ralentit les requêtes DAX en ajoutant des filtres à chaque accès. Pour limiter cet impact, optimisez vos sources de données. Un modèle bien structuré et des index adaptés améliorent considérablement les temps de réponse.

Chaque requête avec RLS exige un traitement supplémentaire pour appliquer les filtres. Cela augmente la charge serveur, surtout avec des expressions DAX complexes. 

Les modèles DirectQuery souffrent particulièrement de cette surcharge sans optimisation préalable de la base source. Le Power BI Gateway peut amplifier ces problèmes si mal configuré.

Optimisation du modèle de données pour le RLS

Privilégiez un schéma en étoile avec des tables de dimension claires. Évitez les jointures multiples et les relations Many-to-Many. Un modèle simplifié réduit le temps de calcul des filtres RLS.

Structurez vos relations pour que les filtres se propagent facilement. Appliquez le RLS sur les tables de dimension plutôt que sur les faits. Cela réduit la complexité des requêtes et améliore les performances. Évitez les fonctions DAX lourdes comme LOOKUPVALUE() pour les règles RLS.

Conseils de pro pour un RLS robuste

Ne laissez jamais les administrateurs tester le RLS sans rôle attribué. Leur accès par défaut contourne les règles. Testez toujours avec des utilisateurs non-administrateurs pour valider la sécurité.

Utilisez des groupes Azure AD plutôt que des utilisateurs individuels. Pour cela, il est nécessaire d'avoir de solides compétences Power BI. Simplifie gestion des accès et réduit les risques d'erreur. Vérifiez que toutes les tables de faits sont liées aux dimensions utilisées pour le filtrage RLS.

Stratégies de test et de validation du RLS avant déploiement en production

Testez vos rôles avec "Afficher en tant que" dans Power BI Desktop. Puis validez dans le service Power BI via "Tester en tant que rôle". Simulez différents profils utilisateurs pour détecter les fuites de données.

Créez des mesures DAX temporaires avec USERNAME() pour vérifier que les règles s'appliquent correctement. Testez aussi les accès avec DirectQuery pour identifier les problèmes de configuration.

Bonnes pratiques de documentation et de maintenance des règles RLS dans un environnement d'entreprise

Documentez chaque rôle RLS avec sa logique DAX, les tables impactées et les groupes associés. Cela facilite la maintenance et les audits. Mettez à jour cette documentation à chaque modification.

Implémentez des procédures de revue régulières pour valider l'efficacité des règles. Automatisez les tests avec des outils comme Power BI CLI ou des scripts PowerShell pour surveiller les éventuelles failles.

Avec les bonnes clés en main, la sécurité au niveau des lignes dans Power BI vous permet de restreindre l’accès aux données sensibles tout en optimisant la gouvernance. 

Testez vos rôles RLS dynamiques avec USERPRINCIPALNAME(), validez votre modèle de données et déployez serein : votre reporting restera fiable et ultra-sécurisé, prouvé !

Et sinon, pour aller plus loin, on à une formation POWER BI avec une certification Power Bi ! Et si vous n’êtes pas prêtà vous engager, on à aussi une formation gratuite ! :) 

{{formation-power-bi="/brouillon"}}

Faites un premier pas dans la data avec nos cours gratuits
Démarrer

Les derniers articles sur ce sujet

Difficulté :
Difficile