Integrating SSRS report items into Power BI

Last month I posted about configuring SQL Server Reporting Services (SSRS) to integrate with Power BI, which is a new feature included with SQL Server 2016, and adds more to the ever-growing capabilities of Power BI.

In this post I will explain the easy steps to publish report items from a report to a Power BI dashboard.

The first step is of course to build a report for SSRS, and then publish it to the report server. Make sure that the report server compatibility is set to the new “SQL Server 2016 or later” value. In my case, I quickly put together this ugly report that connects to the AdventureWorks database:

Reseller Sales report

Once published, and once you navigate to Report Manager and run the report, apart from the new toolbar, you will notice a “Pin to Power BI Dashboard” button on it. Clicking on this will confirm if you want to go through with signing in to Power BI and granting it permission to access your reports as well as other components.

Sign into Power BI

Permissions for Power BI

Once that’s all settled, you will be directed to choosing the report items that you want pinned to the dashboard. Notice that tablixes are disabled and only charts are allowed to be published. This makes sense since data on a tablix can grow to great lengths:

Click Report Item to pin

Clicking on an enabled report item prompts you to choose the dashboard and the frequency the report item should be refreshed with data:

Pin to Power BI Dashboard

Pin Successful

Lo and behold! The two report items are now pinned to an existing dashboard, and clicking on these report items will navigate to the report:

Dashboard with pinned report items

Behind the scenes Reporting Services creates a timed subscription per report item that is pinned. The timed subscription uses a SQL Agent job to refresh the report based on the selected latency. Hence, if you get this error when you are trying to pin a report item to a dashboard, then your SQL Agent is probably not running:

Can't Pin to Power Bi

All in all, I think this is an important feature in Microsoft’s suite of BI tools where components of enterprise reports can be pinned to a self-service dashboard, whereby giving more value and a greater chance for adopting the suite as a complete BI solution.

Accessing a Remote SQL Server instance via SQL Server Management Studio

When you work with remote SQL Server instances, such as those on a standalone machine, or one on a separate domain, and you only have Windows Authentication to access the remote machine, how would you do it?

  • If the target instance had SQL Server Authentication, you need only supply the user name and password of SQL login, and you are in.
  • If the target is on the same domain as the user you have logged on to your local machine with, then it’s just a matter of the login having access on the server, and you could just Windows Authentication it.

However, in this case, you are on your own domain/standalone machine trying to access another domain/standalone machine remotely. Your immediate impulse would be to run SQL Server Management Studio as another user, and supply the remote machine’s credentials. Problem is, your machine/domain is not going to know the domain’s/remote machine’s credentials:

Connect Error to Remote Intance

Hence, in order for you to open Management Studio using the target machine’s credentials, you need to do things a little differently: Open the command prompt as an administrator, and run Management Studio under the credentials of the target machine:

RUNAS with NETONLY flag

This will open Management Studio under the supplied remote machine’s credentials. Note that we use the RUNAS command with the NETONLY flag. Warning: you need to ensure that the password is entered correctly, since Management Studio will open regardless of you supplying the correct password.

Logging in to Management Studio will look like this:

Login to Remote Instance

and once logged in, the instance connected to, would look like this:

Management Studio Object Browser

You are now connected to a remote SQL Server instance from your local machine, with credentials of the remote instance.