Forum Discussion

rodrigo09062015's avatar
rodrigo09062015
Frequent Visitor
1 year ago
Solved

Dataset.Read.All is not available under Application Permissions in Azure AD for Power BI API

I'm configuring an Azure AD application to access the Power BI REST API.

I’ve already registered the app and navigated to API permissions > Add a permission > Power BI Service > Application permissions, but I don’t see the 'Dataset.Read.All' permission listed.

I do see other permissions like:

  • Tenant.Read.All

  • Tenant.ReadWrite.All

But nothing related to datasets under "Application" type.

Does anyone know why 'Dataset.Read.All' is missing for Application permissions?
Is this permission only available under Delegated permissions?

 

 

  • V-yubandi-msft's avatar
    V-yubandi-msft
    1 year ago

    Hi rodrigo09062015 ,

    Thanks for your response. You can capture a specific visual from a Power BI report using the Export To File API, but there are a few things to keep in mind.

    1. The report needs to be in a workspace with Premium or PPU capacity

    2. You’ll need to use a service principal to make the export call

     

    The visual needs to be part of a report, not just placed on a dashboard. Dashboard tiles aren’t currently supported by this API, but as long as your visual is on a report page, you can export it as a PNG, PDF, or PPTX file. Dashboard tiles aren’t supported in this API, but if your visual lives on a report page, you’re good to go and you can export it to PNG, PDF, or PPTX.

     

    Here are some useful links to help you get started

    Export Power BI embedded analytics reports API - Power BI | Microsoft Learn

    Reports - Export To File In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn

     

    I Hope this helps.

    Thanks &regards,

    Yugandhar.

6 Replies

  • Hello rodrigo09062015 ,

     

    The Power BI API currently does not expose Dataset.Read.All under Application Permissions because dataset-level operations (reading/querying) generally require user context.

    Only Delegated permissions include:
    -Dataset.Read.All

    -Dataset.ReadWrite.All

    These are used on behalf of a signed-in user (OAuth2 flow where a user logs in).

     

    If this solved your issue, please mark it as the accepted solution.

  • V-yubandi-msft's avatar
    V-yubandi-msft
    Community Support

    Hi rodrigo09062015 ,

    Thank you for engaging with the Microsoft Fabric Community. Just to add a bit more context to anilelmastasi , response. Dataset.Read.All isn’t available under Application permissions in Azure AD, which is expected. Reading or querying datasets requires user context, meaning someone must be signed in. That’s why Dataset.Read.All and Dataset.ReadWrite.

    All are only available as Delegated permissions, used when an app acts on behalf of a signed in user through OAuth2. If your app uses a service principal or operates without user interaction, it relies on Application permissions, which don’t provide dataset level access. 

     

    Helpful refrence:

    Embed Power BI content in an embedded analytics application with service principal and an application secret - Power BI | Microsoft Learn
    Power BI REST APIs semantic model permissions - Power BI | Microsoft Learn
    Microsoft Graph permissions reference - Microsoft Graph | Microsoft Learn

     

    Hope this clears it up.

     

     

    Regrads,

    Community Support Team.

     

  • rodrigo09062015 If you want to give service principal access on a Workspace level then  add that Service Principal as a member to that workspace and try executing the Get Datasets API. You don't have to provide any delegated permissions on the Azure Portal.

  • V-yubandi-msft's avatar
    V-yubandi-msft
    Community Support

    Hi Jai-Rathinavel ,

    Just checking in has your issue been resolved? Was my response helpful, or would you like more details or clarification?  Feel free to let me know if there's anything else I can assist with.

     

    Thanks &Regards,

    Yugandhar.

  • Friends,
    Thank you for the response.

    It’s clear to me now.
    My initial goal was to try to use the API to capture an image of a specific visual from a dashboard. I must admit I don’t know if it’s possible to do this via the Power BI API.

    If any colleague knows whether it’s possible and can share tips or how to do it, I would appreciate it.

    • V-yubandi-msft's avatar
      V-yubandi-msft
      Community Support

      Hi rodrigo09062015 ,

      Thanks for your response. You can capture a specific visual from a Power BI report using the Export To File API, but there are a few things to keep in mind.

      1. The report needs to be in a workspace with Premium or PPU capacity

      2. You’ll need to use a service principal to make the export call

       

      The visual needs to be part of a report, not just placed on a dashboard. Dashboard tiles aren’t currently supported by this API, but as long as your visual is on a report page, you can export it as a PNG, PDF, or PPTX file. Dashboard tiles aren’t supported in this API, but if your visual lives on a report page, you’re good to go and you can export it to PNG, PDF, or PPTX.

       

      Here are some useful links to help you get started

      Export Power BI embedded analytics reports API - Power BI | Microsoft Learn

      Reports - Export To File In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn

       

      I Hope this helps.

      Thanks &regards,

      Yugandhar.