Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi, i have to include a couple of questions here because of the nature of this challenge. We run sql server 2019 std. My understanding is that even 2019 std has an rls feature.
we want added security on the related "cost" portion of our fact sales record. But best practices years ago always said "keep facts with the same granularity on the same fact record".
we have a sales cube which sources excel pivots and pbi dashboards/reports. we have the same structure in our sales data warehouse (sql 2019 std) which also sources pivots and pbi dashboards/reports. and its been years but i recall studying rls as a pbi feature too. we are limited to pro licenses so i dont know if it applies. BUT as i recall rls is an easily "rolled your own" behavior using some simple dax in pbi.
so ...1) is there a column level security feature or concept anywhere in these products or as a "roll you own", 2) i think im going to get a proposal soon that we split up the cost column (to a different record) from the revenue in order to achieve rls on cost and am wondering what the community thinks about this, when/if we move to a non expiring account (service principal) in pbi, how will pbi know with which acct the user went into pbi so rls can be applied correctly?
some additional notes:
-we are looking at going to azure with ssas, ie severing it completely from the engine (sql , ssis, ssrs). but not immediately.
-one of my peers believes that if the context of a pivot is high enough in pbi or excel where 1 or move division's costs purposely not included, we should tell our users that the measure isnt always right. I disagree with this.
Solved! Go to Solution.
RLS and OLS works thanks to the "impersonation".
if a user access a power bi semantic model, the UserPrincipalName (UPN) of the user that is accessing the portal is passed to the model and it's visible in the USERPRINCIPALNAME() dax function.
if the user accesses a SSAS model it depends on the setting at gateway level:
- you can pass the effective UPN
- you can map the UPN to something different
- you can use custom data
Manage SQL Server Analysis Services data sources - Power BI | Microsoft Learn
Hi @db042190 ,
Could you please provide more details so that we can help in addressing the issue.
Thank you!!
I'm not sure I got 100% your question(s).
First of all if your SSAS has a compatiblity level over 1400 you've both RLS and OLS and it's valid for Power BI models too. PRO licenses can work with no issues with both.
RLS and OLS can be implemented in SQL Server database too.
the problem I see is that you have reports that read directly from DWH and in this case you should implement RLS and OLS in both Semantic Models and SQL Server databases that is double work to maintain.
thx ricardo, i was afraid we'd be doing double (maybe triple pbi, engine, ssas) the work...
-is ols "object level "and can that be applied to a column or is min level of ols a table object?
-also if we implement service principal, how would pbi know who the current user is?
hi R1K91. sorry for the delay. acct db042190's authenticator doesnt trigger anymore after the old phone (12 mini) was replaced (16e) and after EVERYTHING imaginable was attempted to correct the issue. A ticket has been opened but MS's promise by Praveen to address the issue on the 22nd was broken. I may open a better business bureau complaint. i posted the issue in this forum's issue sub forum too.
By service principal db042190 means a non expiring id. its here that the idea 1st materialized https://community.fabric.microsoft.com/t5/Service/using-a-non-expiring-id-without-giving-pswd-away/m...
for us. if a non expiring id (servce principal) is the "proxy" by which a dataset is refreshed daily and the report runs, how can pbi know that at the engine or ssas level (source) , the user who came in to run the dashboard or report is restricted at the table or column level?
RLS and OLS works thanks to the "impersonation".
if a user access a power bi semantic model, the UserPrincipalName (UPN) of the user that is accessing the portal is passed to the model and it's visible in the USERPRINCIPALNAME() dax function.
if the user accesses a SSAS model it depends on the setting at gateway level:
- you can pass the effective UPN
- you can map the UPN to something different
- you can use custom data
Manage SQL Server Analysis Services data sources - Power BI | Microsoft Learn
thx, unfortunately i cant mark your post as an answer because MS has me tied up. but it is more than acceptable as an answer.
User | Count |
---|---|
48 | |
31 | |
27 | |
26 | |
26 |
User | Count |
---|---|
60 | |
56 | |
36 | |
32 | |
28 |