Dynamic Row-Level Security (RLS) in Power BI Without Creating Roles
I would like to propose a feature enhancement for Power BI that allows for the implementation of Row-Level Security (RLS) without the need to create roles. Currently, RLS in Power BI requires the creation of roles and defining rules to restrict data access. While this approach works well, it can become cumbersome and complex, especially in scenarios with a large number of users and dynamic security requirements.
Proposed Solution: I propose introducing a dynamic RLS feature that leverages user-specific attributes, such as email addresses or user IDs, to filter data without the need to create predefined roles. This could be achieved by using DAX functions like USERPRINCIPALNAME() to dynamically filter data based on the logged-in user.
Benefits:
Simplifies the process of implementing RLS, especially in large organizations.
Reduces the administrative overhead of managing multiple roles.
Enhances flexibility and scalability in managing data security.
Provides a more intuitive and user-friendly approach to data security in Power BI.
Use Case: For example, a sales dashboard could dynamically filter sales data to show only the relevant data for the logged-in salesperson without the need to create individual roles for each salesperson.
I believe this feature would greatly enhance the usability and flexibility of Power BI, making it easier for users to implement and manage data security.
Thank you for considering this idea. I look forward to the community's feedback and support.
1 Comment
- Jake91Frequent VisitorYou're half describing how you should currently achieve data-driven dynamic RLS anyway. You will always need some user-SecurityMapping data to describe which user should see which data within a report i.e. [email protected] can only see Cost Centre: 1234. You could achieve this through appropriately named/tagged Entra Security Groups and have a query that gets all users/groups. You join this SecurityMapping table to the data that should be filtered i.e. SecurityMapping:CostCentre to Sales:CostCentre You then create 1 role "Data-Driven Dynamic" and apply DAX on SecurityMapping.User = USERPRINCIPALNAME() Your SecurityMapping filter then passes through and filters Sales appropriately based on that relationship.
Recent ideas
Allow the target pipeline reference in Invoke Pipeline / ExecutePipeline to be set dynamically
Problem Today, the Invoke Pipeline activity (and legacy ExecutePipeline) requires picking the target pipeline statically at design time — a fixed Workspace/Pipeline selection in the UI, which serial...JONATHANHAUN4 hours agoNew MemberNew4Views0likes0CommentsReset Bookmark Navigator Selection to the Default Published View on Browser Refresh
In Power BI Service, when a user selects a bookmark through a Bookmark Navigator, the bookmark identifier is appended to the report URL. If the user refreshes the browser page, the report reloads in ...vivek123444 hours agoMicrosoft EmployeeNew5Views0likes0CommentsSeparate Interactive and Background Compute Allocation to Prevent Throttling of Live Reports
Problem Statement When Fabric capacity utilization reaches or exceeds 100% in the last one-hour window, end users experience significant disruptions when accessing Power BI Fabric live reports. This...TilakArani5 hours agoNew MemberNew6Views0likes0CommentsAccessibility issue in the Share dialog of embedded Power BI reports
Accessibility issue in the Share dialog of embedded Power BI reports I would like to share an accessibility finding identified while testing an embedded Power BI report published as part of the cont...ugartema6 hours agoAdvocate INew106Views14likes1Comment- fbcideas_migusr8 hours agoNew MemberUnder Review385Views12likes4Comments