March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hi,
I have a situation where i need to deploy same PBIX report to multiple clients. Each client same same database table/views architecture. one client should not be able to see the data of other clients. the same PBIX report can be used for all clients but with different database connections.
Like in SSRS we had created folder for each client and given access to respective clients only. Deployed SSRS RDLs to each folder and mapped Datasource of SSRS report to respective client database.
Now in new PowerBI scenario- we have created a PBIX report which uses some table from database. this is a uses a standard Microsoft Project server databse. Each client has its own Project server database (all DBs has structure but contains different data) and we need to connect that PBIX to respective client's MSPS database. we have more than 1000 clients!
Moreover we don't want to use direct query method 😞 as it is slow for us. we will go for dataset which stores the cache values and refreshes data from DB at scheduled interval.
My thinking is- If we create workspace for each Client then can we deploy PBIX file there dynamically? so that we dont need to create a report in PowerBI desktop and import data from each client respectively and then deploy to respective workspaces, that's too for >1000 client! ........... I know it sounds suicidal
Any suggestion to overcome this situation?!!! all are welcome:)
Regards,
Sushant
Hi Sushant,
Since there are so many reports, even the power-bi-templates won't help much. I would suggest you try out the Power BI REST API. Upload the pbix reports with power-bi/imports/postimportingroup and then update the data source with datasets/updatedatasourcesingroup.
Best Regards,
Dale
@Anonymous may be you want to look at powershell for deployment process and rebind the report using powershell to respective database. it can help to automate the process instead doing it manually for each client.
And other scenario could be to create centeralize database and then use Row Level Security, with this you need to deploy only one report with same database, and RLS will show respective data to each client. It will be easy to manage. For example, if you make change to report, you need to update at one place instead of updating report for each client.
Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!
Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo
If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤
Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.
Thanks Parry!
I have 2 subsequent follow up queries:
for the RLS - in one centralie database-
1- do you mean to say one dataset which will hold the records from all the client db?
2- and in that we need to set RLS as per client to keep data privacy. ?
regards,
Sushant Yadav
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
133 | |
91 | |
88 | |
64 | |
58 |
User | Count |
---|---|
201 | |
137 | |
107 | |
73 | |
68 |