I am working on a dynamic security implementation where an SSAS stored procedure will obtain the allowed set filter of the permitted customers from an external security authority based on the indentity of the interactive user (Username function). This filter will be applied to all dimensions, e.g. the user can see only accounts that belong to the allowed customers only. The users will use Excel and Report Builder to create reports from the cube in a client-server fashion.
I want to cache the security filter per user so I don't have to access the external security authority when propagating the security filter to all dimensions. In other words, once I obtain the list of allowed customers ({[Customer].[Customer].&[1], [Customer].[Customer].&[2], etc.), I want to "reuse" it across the rest of the dimensions, e.g. EXISTS([Account].[Account].Members, {[Customer].[Customer].&[1], [Customer].[Customer].&[2]}).
What will be the recommended caching solution?
Hi!You can apply Visual totals option for customer code attribute. In your example users will see, say, product dimension, but they will not see sales for other products then those made by restricted set of customers, which is I hope your intended behavior.
Radim|||Thank you, Radim, but this actually not I was asking for. I was hoping for a recommended approach for caching inside SSAS stored procedures so I don't have to ask the external security authority each time I need to apply the same set across the dimensions that need it. This is a followup question to this thread.
No comments:
Post a Comment