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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
wetscott
Helper I
Helper I

Query all Users with Access to Reports in Workspace

I need to do an audit on a bunch of reports in a Workspace, to determine if the correct people still have access, or they have since moved on. This would ideally become an going report I could have someone review monthly, and cull accesses to users that.

 

We have been leveraging Outlook Groups for some accesses, but unforntunately I can't control what permissions others are giving to reports in the workspace, so not everyone with WS access does the right thing everytime..

 

What I want to do is build a PowerBI report that effectively queries either it's, or if it has to be in a different WS then another defined WS, and displays all the reports contained within, and who has accesses tied to these reports.

I plan to then merge this data with a snapshot of the user list (including their title/role/team/etc) taken from the start of the month, to then highlight "users who've changed roles on x report". This will then become a sort of "action log" for one of my team member to follow up with, and determine things like "well you've changed roles, do you really need this report still?".

 

Thanks.

3 REPLIES 3
jaweher899
Super User
Super User

To create a report that shows the access rights of users to reports in a workspace, you can use the Power BI API and the Microsoft Graph API to retrieve the relevant information.

  1. Use the Power BI API to get a list of reports in the workspace. You can use the GetReportsAsAdmin method to get a list of reports in the workspace.

  2. For each report, use the Power BI API to get a list of users and groups that have access to the report. You can use the GetReportUserAccessList method to get this information.

  3. Use the Microsoft Graph API to get a list of users in your organization, along with their role, team, etc. You can use the Get users method in the Microsoft Graph API to get this information.

  4. Combine the information from steps 2 and 3 to create a report that shows which users and groups have access to which reports, along with their role, team, etc.

  5. You can also automate the process of creating this report on a monthly basis by using the Power BI API and the Microsoft Graph API to refresh the data and update the report.

By creating this report, you can easily monitor and audit the access rights of users to reports in your workspace, and identify users who have changed roles or no longer need access to certain reports.

@jaweher899 @wetscott 
Can you provide any code examples how to get this reporting done.

Also can this be extended to all workspaces in the organisation or would there need to be a different sources for different workspaces?

Thanks for the overview. Good to know that what I'm looking to build is entirely doable.

 

I'm struggling with step 1 though. can't seem to wrap my head around HTML GET in power query, and getting it to authenticate :S

 

would you have a example of a query setup to pull in this data?

i'm sure i'll be able to retrofit with my approrpriate ID/URL's from there. did a little googling, and doesn't appear anyone has posted a complete query doing this :S

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors