Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Power BI Embedding Multiple Customers

Hi,

 

We have a requirement where we need to take 1000s of customers' data in a single dataset and embed it in a third-party application. We need to ensure customers only see their data and not any other customers' data. 

 

I have gone through this official documentation (https://docs.microsoft.com/en-us/power-bi/developer/embedded/embed-multi-tenancy) and seems to be a promising solution.  However, the only thing that is concerning is that it does not viable creating 1000s of workspaces for 1000s of customer in a single Power BI Tenant. 

 

Is there a better way to achieve this? 

  • Hi Anonymous,

    Sure. You do not have to create a workspace per customer.
    It is usually convenient from a logical point of view. Especially if you plan to allow end-users to create reports/plan to use the Power BI Service for QA.

    You can arrange the datasets and reports any way you like in any number of workspaces. Just note the limitation on the number of artifacts per workspace: Workspace Limitations
    You will be the one who controls the access through the embedding application.

    For example, you can create 1 workspace for all of your reports (up to 1000) & 1 workspace for all of your datasets (1 per customer, up to 1000).
    Reports will be dynamically bound to different datasets as part of the embedding process.
    If you'll have 1500 customers or 1500 reports- Just add a second or third workspace.

    If you wish to reduce the development & management effort, and have no objection to combining different customers in the same DB- Consider using a single dataset with Row Level Security (RLS).
    If implemented correctly, this will ensure customers only see their own data.
    Note that this approach will have some performance impact and will increase the amount of resources needed for processing (subject to the implementation).

4 Replies

  • SpartaBI's avatar
    SpartaBI
    Community Champion

    Hi Anonymous,

    Sure. You do not have to create a workspace per customer.
    It is usually convenient from a logical point of view. Especially if you plan to allow end-users to create reports/plan to use the Power BI Service for QA.

    You can arrange the datasets and reports any way you like in any number of workspaces. Just note the limitation on the number of artifacts per workspace: Workspace Limitations
    You will be the one who controls the access through the embedding application.

    For example, you can create 1 workspace for all of your reports (up to 1000) & 1 workspace for all of your datasets (1 per customer, up to 1000).
    Reports will be dynamically bound to different datasets as part of the embedding process.
    If you'll have 1500 customers or 1500 reports- Just add a second or third workspace.

    If you wish to reduce the development & management effort, and have no objection to combining different customers in the same DB- Consider using a single dataset with Row Level Security (RLS).
    If implemented correctly, this will ensure customers only see their own data.
    Note that this approach will have some performance impact and will increase the amount of resources needed for processing (subject to the implementation).

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi SpartaBI ,

       

      Thanks for your reply!

       

      From the diagram I can see that Service Prinipcal Profile have a one-to-one mapping with Power BI workspaces. This means for my situation 1000s customer = 1000s workspaces which I want to avoid. Any other way around this?

  • SpartaBI's avatar
    SpartaBI
    Community Champion

    Anonymous In case it answered your question please mark this as a solution for community visibility. Appreciate Your Kudos 🙂