Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Maintaining data security has become a crucial requirement for businesses today, especially when dealing with BI reporting. With the increasing number of roles involved in data access, managing row-level security (RLS) has become a complex task. In order to provide secure and filtered data access to each role, businesses need to establish a set of filtering dimensions that would be applied to each role. These dimensions could range from profit centers to sales organizations or even trader/buyer codes. The challenge is to create a system that effectively manages these dimensions for each role and ensures their automatic application when users log into each report. Therefore, the question arises - how can businesses create an efficient RLS system that provides secure and filtered data access to each role, without compromising on the performance of BI reporting?
RLS will be configured for each report, will be applied on below like report source view, within Power BI and will automatically work when the user logs into each report.
SELECT [Ledger]
,[Company_Code]
,[Fiscal_Year]
,[Period]
,[Profit_Center]
,[Company_Code_Currency]
,[Amount_In_Transaction_Currency]
,[Amount_In_Company_Code_Currency]
,[Amount_In_Global_Currency]
,[Plant]
,[Sales_Organization_Code]
,[Cost_Center]
,[Division_Code]
,[Tax_Amount_Transaction]
,[Tax_Amount_Company_Code]
,[Tax_Amount_Global]
,[Net_Amount_Transaction]
,[Net_Amount_Company_Code]
,[Net_Amount_Global]
,[Plant_Name]
,[Plant_Country]
FROM [Datamart].[View_Vendor_GST_RLS]
User | |||
UserID | Username | WindowsUserName | ActiveFlag |
0FF6E238 | adenton@simsmm.com | AP01\adenton | Y |
FAC65EA6 | afeng@simsmm.com | AP01\afeng | Y |
0B61D4DE | aheng@simsmm.com | AP01\aheng | Y |
0DB5B2AA | alvaro.caicedo@simsmm.com | AP01\alvaro.caicedo | Y |
21A14AA6 | amgonzalez@simsmm.com | AP01\amgonzalez | Y |
Role | |||
RoleID | Rolename | FilteringDimension | Value |
1 | Accountant | Profit Centres | PA051COD |
28 | Accounting Clerk | Profit Centres | PN102FS |
19 | Accounting Manager | Profit Centres | PST01 |
49 | Administrator | Company Codes | A005 |
49 | Administrator | Cost Centres | N100133100 |
49 | Administrator | Plants | A304 |
49 | Administrator | Profit Centres | PA204NF |
58 | AP Accountant / Shared Services | Company Codes | A005 |
58 | AP Accountant / Shared Services | Cost Centres | N100133100 |
58 | AP Accountant / Shared Services | Plants | A601 |
58 | AP Accountant / Shared Services | Profit Centres | PN108NF |
RLS | |||||
S_No | UserID | RoleID | FilteringDimension | FilterValue | ActiveFlag |
1 | C4D8B4BA | 64 | Purchase Organization | SG01 | Y |
2 | CB57A9E1 | 11 | Cost Centres | ITSA005CC1 | Y |
3 | 0FF6E238 | 45 | Plants | P101 | Y |
4 | FAC65EA6 | 33 | Trader/Buyer Code | Sandy Tan | Y |
5 | 0B61D4DE | 50 | Plants | A208 | Y |
6 | 0DB5B2AA | 43 | Plants | A601 | Y
|
As per my understanding of your question you can implement RLS in power Bi using following steps.
step1) open manage roles section under modeling pane.
From here you can you can add different roles with different priveleges to access filtered data by writing simple DAX query.
Here in above example this will only show data of banglore location to role assigned.
You can test your created roles by clicking on "View as" tab beside "manage role".
Now after publish your report on power Bi service you can share report with different peoples by assigning roles which we created in PowerBI Desktop.
For end-to-end implementation you can refer following video:
https://www.youtube.com/watch?v=gT5-S3raIDo
Please mark my solution as accepted if it worked for you.
User | Count |
---|---|
98 | |
90 | |
82 | |
73 | |
67 |
User | Count |
---|---|
115 | |
102 | |
98 | |
71 | |
67 |