Disable/Enable export data option for Power BI report visuals

I wrote two blog posts in the past regarding similar goals for PowerBI Report Server which can be seen here:

Disable Download Button on PowerBI Report Server: https://bahtisametcoban.home.blog/2019/07/15/disable-download-button-in-power-bi-report-server/

Disable Print and Export Data Buttons for PowerBI Report Server:

https://bahtisametcoban.home.blog/2020/06/04/disable-print-and-export-data-buttons-for-powerbi-report-server/

This time, we would like to control the option to export data from PowerBI report visuals.

In PowerBI Service, this can be achieved by changing configuration in “Tenant Settings”. For On-Premise PowerBI Report Server, you need to connect to Reporting Service instance using Management Studio.

 Steps:

  1. Open SSMS, choose “Reporting Services” for Server Type and connect to Reporting Service as shown in Figure 2. You may also use Web Portal/Service URL to connect to it.
  2. Right-click on Servername in Object Explorer and click Properties.
  3. Click “Advanced” Tab
  4. Under “Other” section, Set “EnablePowerBIReportExportData” to “False” to Disable data export. Set it to “True” to Enable data export.

WARNING: This field is not a Dropdown list, instead a simple text box which can be edited directly!

Disable Print and Export Data Buttons for PowerBI Report Server

Here we are again with another Power BI Report Server post. Last time I explained how to disable Download button in this post. This time, we will take a look on how to disable Print button and Export Data options.

Disable Print Button

Just like we did for download button, this is also possible via changing server properties. Before disabling, let me show you “Print Button”

 Steps:

  1. Open SSMS, choose “Reporting Services” for Server Type and connect to Reporting Service as shown in Figure 2. You may also use Web Portal/Service URL to connect to it.
  2. Right-click on Servername in Object Explorer and click Properties.
  3. Click “Advanced” Tab
  4. Under “Other” section, Set “EnableClientPrinting” to False.
It is a dropdown menu, simply click and change from “True” to “False”

PS: You don’t need to restart Power BI Reporting Service or your server. Just refresh the page.

Voilà! Now it is gone.

Disable Export Data Options

This is a bit more complex. There isn’t a simple switch that we can change and hide “Export Drop Down menu”. Again, let me show you this button.

I spend quite some time to find a way to disable this cute floppy disk button but I couldn’t find. Nonetheless, There is another nasty method to hide options via editing Reporting Service config file.

 Steps:

  1. Locate your configuration file “RSReportServer.config”. Normally it would be under your installation path i.e. “C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer”
  2. Open it with any text editor(Wordpad,Notepad et cetera) and search for “<Render” [Look at the screenshot#1 below]. This is the code section that we are interested. You will see various <Extension> objects under <Render> parent tag.
  3. Add ‘ Visible=”false” ‘ at the end of each <Extension> object [Look at the screenshot#2 below]
  4. Save the changes and close configuration file
  5. Restart Power BI Reporting Services from Services vmi
Find Render section
Change Visible attribute to hide export data options

You can also copy below code if you are too lazy.

    <Render>
      <Extension Name="WORDOPENXML" Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordOpenXmlRenderer.WordOpenXmlDocumentRenderer,Microsoft.ReportingServices.WordRendering" Visible="false" />
      <Extension Name="WORD" Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordDocumentRenderer,Microsoft.ReportingServices.WordRendering" Visible="false" />
      <Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering" Visible="false" />
      <Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering" Visible="false" />
      <Extension Name="PPTX" Type="Microsoft.ReportingServices.Rendering.PowerPointRendering.PptxRenderingExtension,Microsoft.ReportingServices.PowerPointRendering" Visible="false" />
      <Extension Name="PDF" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer,Microsoft.ReportingServices.ImageRendering" Visible="false" />
      <Extension Name="IMAGE" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRendering" Visible="false" />
      <Extension Name="MHTML" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.MHtmlRenderingExtension,Microsoft.ReportingServices.HtmlRendering" Visible="false">
        <Configuration>
          <DeviceInfo>
            <DataVisualizationFitSizing>Approximate</DataVisualizationFitSizing>
          </DeviceInfo>
        </Configuration>
      </Extension>
      <Extension Name="CSV" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering" Visible="false" />
      <Extension Name="XML" Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering" Visible="false" />
      <Extension Name="ATOM" Type="Microsoft.ReportingServices.Rendering.DataRenderer.AtomDataReport,Microsoft.ReportingServices.DataRendering" Visible="false" />
      <Extension Name="NULL" Type="Microsoft.ReportingServices.Rendering.NullRenderer.NullReport,Microsoft.ReportingServices.NullRendering" Visible="false" />
      <Extension Name="RGDI" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.RGDIRenderer,Microsoft.ReportingServices.ImageRendering" Visible="false" />
      <Extension Name="HTML4.0" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.Html40RenderingExtension,Microsoft.ReportingServices.HtmlRendering" Visible="false">
        <Configuration>
          <DeviceInfo>
            <DataVisualizationFitSizing>Approximate</DataVisualizationFitSizing>
          </DeviceInfo>
        </Configuration>
      </Extension>
      <Extension Name="HTML5" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.Html5RenderingExtension,Microsoft.ReportingServices.HtmlRendering" Visible="false">
        <Configuration>
          <DeviceInfo>
            <DataVisualizationFitSizing>Approximate</DataVisualizationFitSizing>
          </DeviceInfo>
        </Configuration>
      </Extension>
      <Extension Name="RPL" Type="Microsoft.ReportingServices.Rendering.RPLRendering.RPLRenderer,Microsoft.ReportingServices.RPLRendering" Visible="false" LogAllExecutionRequests="false" />
    </Render>

After restarting “Power BI Report Server” service and refresh your report, you will see that button is still there but there is no dropdown menu anymore since we disabled all options.

Until next challenge, stay safe.

Disable Download Button in Power BI Report Server

We are using on premise Power BI solution to give insights to analysts about company data and create fancy dashboards for management. We are publishing reports to Power BI Reporting Service. By default, end users can download reports using “Download” Button located at the right top of the portal.

Download button
Download Button 

Due to security concerns, we decided to disable/hide this “Download” button in Power BI Reporting Server. After a quick research, it turns out to be able to do that, you have to set the system property “ShowDownloadMenu ” to false. Cool, how can we do that?

According to below discussion, you can do this via Management Studio in SSRS 2017.

Disable Download buttons in Power BI Report Server

So, it looks pretty straight-forward. I listed steps below:

  1. Open SSMS, choose “Reporting Services” for Server Type and connect to Reporting Service as shown in Figure 2. You may also use Web Portal/Service URL to connect to it.
  2. Right-click on Servername in Object Explorer and click Properties.
  3. Click “Advanced” Tab and Set “ShowDownloadMenu” to False.
Connection

Easy peasy, right? Not that easy if you fall to the same trap like me. That is the reason why I write this blog post.

Based on my experience, this sort of binary fields in SSMS GUI which manages server/database level settings always set with a Dropdown list. For instance, Recovery model, Auto-Shrink, Auto-Close, Compatibility Level and so on. When you select this setting fields, you see a little arrow at the end of the line to change this setting as in below screenshot, or you basically click two times on the setting and it will change its value.

Arrow

I was trying to get the dropdown list to change it from true to False but it looked like a read-only field. Double click alsodidn’t work. I was searching on forums, trying to give more rights to my account. I even tried to connect with service account to see if it is able to change it. No luck.

FIX:

It took me half an hour to realize this field is not a Dropdown list, instead a simple text box which can be edited directly.  Seriously? How much effort needed to make it a list or changeable by double-clicking like it has been for ages? Poor design from SSMS team in my humble opinion, due to the fact that other settings are indeed dropdown list and has tiny arrow ON THE SAME GUI.

Arrow2
Arrow3