简体   繁体   中英

SSAS Tabular - Apply row level filtering by reading security entitlements from Rest API

In our organization user's authentication and authorization information is managed by one team. User's auth information can be read through certain Rest APIs as provided by this team.

Our business data is managed in SSAS tabular, where business users can connect to SSAS tabular by multiple clients like Power BI, SSRS, Excel, Rest APIs etc. We need to provide row level filtering on our business data where entitlements should be matched by the data returned by Rest APIs.

I don't want to cache the security data in SSAS, but want to apply the filtering at runtime. With MDX this seems to be achievable by using MDX Stored Procedures. DAX doesn't seems to provide any stored proc functionality.

Can someone please suggest what are the probable solutions to this problem?

Thanks

There is currently no supported way to apply security data from an outside source at runtime. Theoretically, it could be done if your Tabular model is using DirectQuery, but the performance would probably suffer a lot.

That means you are stuck with two options:

  • Caching the security data in a table in the Tabular model, that you refresh from the API as often as needed (for example once every 5 minutes)
  • Using TOM to dynamically change the role members of your security roles based on the data returned from the rest API. You would need an external job that could do this as often as needed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM