Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
JKarrick
Regular Visitor

Object Level Security that is measure dependent

In a tabular model for analysis services, the lowest level of a shared product dimension needs to be hidden from a a group of users if they select inventory measures, but they can see all product columns when selecting sales measures.  There are about 20 product columns and only two need to be hidden for inventory measures. Is it possible to combine object level security with DAX to accomplish this? 

9 REPLIES 9
JKarrick
Regular Visitor

I appreciate the suggestion of a shadow/hidden table, but please provide more details on how to implement. I'm also providing more specifics about what the model design and desired reporting output for two different user groups. 

 

All Measures (calculated table for all explicit measures)

  • Invoiced Tons comes from Invoice fact table
  • Inventory Tons comes from Inventory fact table

Product dimension (many attributes but limiting to 4 for this example)

  • Product category
  • Product subcategory
  • Reporting grade
  • Material number
    • This column should be visible for Sales users for Invoiced Tons but be hidden for Inventory Tons
    • All other users can see this column with Invoiced and Inventory Tons.

Table relationships:

  • Invoice material number = Product material number
  • Inventory material number = Product material number

Example #1 for Sales user to see the first three Product fields:

JKarrick_1-1701714125264.png

Example #2 - Sales user should not see Material Number for Inventory Tons. Ideally the gray portion would be blank so the same report works for all users instead of completely hidden/access denied that would create an error on the report.

JKarrick_2-1701714326931.png

Example #3 - Non-Sales user can see all product levels:

JKarrick_3-1701714537086.png

 

Thanks for any suggestions!

use two copies of the Product Dimension table.  Join the one with the visible materials column  to the invoices and the one with then hidden materials column to the inventory 

If inventory is joined to the version of the Product dimension with the material column hidden, wouldn't that hide material from all users? Most users should see inventory by material. It's only sales reps that need to have material hidden.

If you have sufficiently diverse audiences then you better create separate reports.

 I'm using Tabular Editor for an Analysis Services cube that is accessed by the entire company in Excel for ad-hoc and some PBI reports. This requirement seems difficult to implement so was hoping some advanced DAX with OLS might make it possible. 

 I'm using Tabular Editor for an Analysis Services cube that is accessed by the entire company in Excel for ad-hoc and some PBI reports. 

Would have been nice if you had led with that.

 

In that case I think you need two cubes.

My original post started with "In a tabular model for analysis services..."

Yes, it did.  I misread it as referring to a Power BI dataset semantic model.

lbendlin
Super User
Super User

Use a shadow/hidden table instead of OLS.

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Power BI Header Change

Power BI Header Update

Read about the exciting updates for the Power BI forum.

Top Solution Authors