Hosting SSRS databases in Azure SQL Managed Instance
Published Sep 22 2020 01:56 PM 46K Views
Microsoft

Hosting SSRS databases in Azure SQL Managed Instance

 

This article outlines the spectrum of options available for migrating your solutions based on the SQL Server Reporting Services (SSRS) to Microsoft cloud, with focus on the newly-introduced support for hosting SSRS databases in Azure SQL Managed Instance.

 

Modernizing at your own pace

 

In times of uncertainty, it’s important to have a flexibility to take approach that makes the most sense for your business. Some organizations slow down to operate more cost-effectively and play as safe as possible, while others lean into new opportunities that didn’t exist before.

Same goes for the appetite for modernization while migrating to Microsoft cloud: you may decide to simply lift and shift your solutions, and still benefit instantaneously from certain capabilities available in cloud only, or you can aim for migrating to cloud native SaaS and PaaS solutions that may require adopting new concepts, but also may be way more rewarding in terms of the modernization, out-of-the-box capabilities offered, and new scenarios unlocked.

 

SQL Server vs. SQL Server database engine

 

Azure SQL as a family of managed, secure, and intelligent SQL database services is a good example of flexibility offered when migrating your solutions to Azure. The entire Azure SQL family is built upon the same SQL Server database engine, so your skills and experience transfer easily to the cloud. Still, you are in control of the level of change you want to introduce, by choosing one of the available database services – SQL Server on Azure Virtual Machine, SQL Managed Instance, or SQL Database.

 

However, your solutions may be leveraging SQL Server capabilities beyond its database engine as a core component. Let’s name a few most used ones:

Integration Services (SSIS) – platform for building data integration and transformation solutions,

Analysis Services (SSAS) - analytical data engine with tabular and multidimensional mode,

Reporting Services (SSRS) – tools and services for creating and managing paginated reports.

 

For each of these powerful and widely adopted SQL Server capabilities there is a choice of options for migration to Microsoft cloud: you can always opt for the simple lift-and-shift approach and host them on the SQL Server on Azure Virtual Machine, resembling the layout from your on-premises environment, or you can decide to leverage equivalent cloud native offerings.

 

When it comes to hosting SQL Server Reporting Services (SSRS) in the Microsoft cloud, there are two main options:

  • Moving your SSRS paginated reports to the Power Bi Premium service
  • Deploying SQL Server Reporting Services virtual machine

The second option has a couple of variations, and to be able to differentiate between the variations we should note that SSRS consists of two components: report server which is a stateless engine of the SSRS, and report server databases storing metadata and temporary report results.

 

SSRS uses two databases to separate persistent data storage from temporary storage requirements. The databases are created together during the installation of SSRS and bound by name. By default, the database names are ReportServer and ReportServerTempDB, respectively.

Earlier mentioned variations pertain to where report server databases are being hosted, and we’ll explain the difference as we go through the options.

 

Moving your SSRS paginated reports to the Power Bi Premium service

 

SSRS paginated reports are optimized for printing or PDF generation, providing you with the ability to produce highly formatted, pixel-perfect layouts. Typical use case for paginated reports are operational reports like sales invoice, or profit and loss statement.

In contrast, typical Power BI report is optimized for exploration and interactivity – you can easily slice and dice data, discover relationships and patterns, in other words it’s ideal for analytical reports.

 

Obviously, both types of reports remain important and having both types in one place, sharing the infrastructure of Power BI service, including the search, monitoring and auditing capabilities provides a great benefit. You can also drill through from the Power BI report to a paginated report, embed paginated report, or share its content through a Power BI app. Check the Paginated reports in Power BI FAQ for more details.

 

To migrate your existing paginated reports in the Report Definition Language (RDL), you can use RDL Migration Tool written by Microsoft and available on GitHub. More detailed guidance on the entire migration process is provided in the Migrate SQL Server Reporting Services reports to Power BI article.

There are currently few limitations that you may need to circumvent to be able to migrate your SSRS paginated reports to Power BI. Also, note that publishing paginated reports in Power BI requires Premium subscription, and consider the upcoming Premium per User license model.  

 

Deploying SSRS on SQL Server on Azure Virtual Machine

 

If you are rather interested in a quick lift and shift of your existing SSRS solution, you can simply deploy SSRS on Azure Virtual Machine, just like on any (virtual) machine on premises. Here you have a full freedom of choice among the supported version of Reporting Services.

There is a choice of Reporting Services virtual machine images that you can choose among according to your BI reporting requirements. You can bring your own licenses or leverage a flexible licensing model through Pay-as-you-go and Azure Hybrid Benefit licensing.

 

You can reuse the same Azure Virtual Machine for SQL Server database engine to store report server databases. Choosing a local instance is useful if you have sufficient system resources or if you want to save on software licenses. On the other hand, running the report server databases on another instance can improve performance. 

 

While SQL Server on Azure Virtual Machine offers some automated manageability features like automatic backups and security patching, note that other aspects like configuring and maintaining high availability through Always On Availability Groups are not provided by the platform.

 

(New) Hosting report server databases in Azure SQL Managed Instance

 

This leads us to the variation that you may find useful if you are preferring fully managed database services, eliminating need for managing the database engine manually. With this approach, your stateless report server installed on Azure Virtual Machine connects to report server databases hosted on Azure SQL Managed Instance.

 

High availability of databases here comes out of the box, with 99.99% availability SLA. You can leverage auto-failover groups as a disaster recovery solution for the most critical solutions, or geo-restore capability for less critical ones. You can also use point-in-time restore (PITR) functionality to recover from accidental report changes.

 

If your SSRS reports are pulling the data from databases hosted on Azure SQL Managed Instance, consider hosting report server databases on the same instance, thus minimizing the database engine footprint.

 

SSRS DB on SQL MI.png

 

SQL Server 2019 Reporting Services come with native support for hosting report server databases in Azure SQL Managed Instance – just point your SSRS to the instance during the setup, or re-point the existing installation using SSRS Configuration Manager. You can also restore a backup of your report server database from on-premises SQL Server on Azure SQL Managed Instance.

 

If you’re using SQL Server 2017 Reporting Services, you can still host report server databases on Azure SQL Managed Instance. You should just configure the instance before installing 2017 version of SSRS on Azure Virtual Machine. Configuration steps are very simple and ensure that some of the commands issued during the installation process by the legacy version of SSRS, that have been eliminated in SSRS 2019, are safely ignored by SQL Managed Instance:

 

 

 

 

 

 

 

 

-- Turn the advanced configuration options on:
sp_configure 'show advanced options', 1 ; 
GO
RECONFIGURE; 
GO

-- Enable suppression of error messages for recovery model change:
sp_configure 'suppress recovery model errors', 1 ; 
GO
RECONFIGURE; 
GO

 

 

 

 

 

 

 

Visit Suppress recovery model errors server configuration option to learn more about this configuration option.

 

Conclusion

 

There are multiple options to choose among when deciding on the approach for moving your SSRS solution(s) to Microsoft cloud. Options cover the entire spectrum from Infrastructure-as-a-Service (IaaS) solutions offering completely the same experience as with on-premises SQL Server enriched with some management automation options, through leveraging Platform-as-a-Service (PaaS) solution for hosting report server databases on Azure SQL Managed Instance (newly-introduced option), all the way to Software-as-a-Service (SaaS) solution with SSRS paginated reports in Power BI service. This flexibility allows you to modernize at the pace that makes the most sense for your business.

 

28 Comments
Copper Contributor

If I choose to host my report server databases in a Managed Instance, will I have to license the SSRS server separately, or will the Managed Instance  pricing cover SSRS?  Thanks!

Microsoft

You will still have to license the Reporting Services separately. The main benefit is that you don't have to manage another SQL Server to host report databases databases. 

Copper Contributor

Thanks!! Do you happen to know what the minimum edition of SQL Server would be that I would have to license in this scenario?

Copper Contributor

Thank you for your efforts. I hope to get a Microsoft Expert Creative Teacher Certificate

Copper Contributor

Hello. 
If I have my report server databases hosted on Managed Instance, can I still use the SSRS Windows Share Subscription service on the VM that report server is installed?

Microsoft

Hello @Trishani, while the definition of the subscription is stored in the database hosted on SQL MI, all the "business logic" related to initiating process, creating, and delivering reports is still running on the VM hosting report server. So, the answer is yes, you can.

Copper Contributor

Hi

Do you know if SSRS2012 would connect to a Azure SQL Managed Instance ?

Microsoft

Hi @mtrudel337 , SSRS 2012 can connect to Azure SQL Managed Instance as a data source, as long as there is connectivity between the server hosting Reporting Services and managed instance. Note though that SSRS 2012 cannot host its two "system" databases with default names ReportServer and ReportServerTempDB on a managed instance.

Copper Contributor

HI thanks you for answering.

So what would be my alternative for th two system databases ?

The customer owns SQL2012 Standard and IT has schedule a migration to Azure without consulting with me first.

Migration is inevitable.
Now I am faced with either upgrading to SQL2019 (too expansive) or have all users buy a PowerBI Pro licence and I would migrate my reports to PowerBI but not with  PowerBI Premium Service (way too expansive) but with a per User Power BI Pro licence.

But I tested a few reports and a have many hours to spend to migrate SSRS report to PowerBI Paginated Reports. Some reports do not migrate without some modifications.

So in the mean time I would like to simply migrate the existing Windows 2012R2 VM running SQL Server 2012 SSRS (not the database just SSRS. I would stop the SQL service) to Azure and reconfigure SSRS to Connect to the Azure SQL Managed Instance.

 

So SSRS would be in Azure in its own WIndows 2012R2 server and would connect to an Azure Sql Managed instance.

Where would the two SSRS databases be then ?

Microsoft

While you are working on migration to Paginated Reports, you can temporarily host system databases on SQL Server 2012 instance on the same Azure VM where you're going to run SSRS. In other words, you'd keep SQL service running. You need licenses for SSRS anyway, so you won't spend more licenses for the database engine. I do understand that installing and maintaining another SQL Server 2012 database engine is an overhead, but that's the only alternative to upgrading to SQL Server 2017/2019 that I could think of in your scenario. 

Copper Contributor

Thank you very much. Will do that as a backup in case I am not ready migrating all reports to paginated report at migration date

Copper Contributor

If I dont want to use Azure VM for installing SQL Server Reporting Services then what options we have on Azure. I dont want the SQl Server Reporting Services to be on-premise. 

Is SQL managed instances can provide such services ? 

Microsoft

@Sagnik1981 , Azure SQL Managed Instance today cannot host Reporting Services as a service/executable.

Have you considered converting your SSRS reports to paginated reports in PowerBI?

Copper Contributor

I suggest that before you spend 1 minute looking the Paginated Reports in PowerBI that you evaluate the cost FIRST.
WARNING - Be very well seated
For Paginated Reports you need to buy PowerBI Premium Service $$$$$$$.
Either PER CAPACITY $4,995 USD/month or by user if you have few users at $20 USD/month/user
https://powerbi.microsoft.com/en-us/pricing/

I have 60 users running SSRS reports - Do the math.
In my case we decided to buy an Azure SQL VM - Cost less, more flexible and well known environment.

With PowerBI Premium Service Paginated Reports, you cannot use VS to design your reports  - Design is done in PowerBI Report Builder.
It is similar to VS but not the same.
Your existing RDL can be imported - In my case one third of the report did not import. I dont remember exactly what I had to change (its been a few months but I had to spend 30 minutes per report so they can be imported (or deploy to PowerBI (dont remember).

Expect a little learinng curve 

Microsoft

@Sagnik1981 from your perspective, what is the main reason that prohibits you from running SSRS on Azure VM?

Copper Contributor

That is not what I said.
I said that I DID/DO use an Azure SQL VM with SSRS that costs  (will/expect) less then 60 PowerBI Premium Per User Licence.

  • Simpler
  • Cheaper
  • No Learning curve to learn how to convert rdl to PowerBI Premium Paginated Report
  • Immediate deployement
  • 15 years of SSRS knowledge

 

I just did it yesterday.

I am a consultant and have my development environement (VS2019) on my own computer outside of Azure so I need to be able to deploy reports from my own computer to the Customer's Azure SSRS portal

So I needed to open ports to allow me to deploy FROM MY COMPUTER  OUTSIDE OF AZURE.

 

So I ...
1) Open Azure all ports from my personel public IP (from my ISP) to allow my conputer to access the VM (could have opened only RDP and HTTP)
2) In the Azure VM, In WIidows Firewall settings, opened port 80 for public access (step 1 only allows me to publicly connect)

So now I can deploy reports in VS2019 on my computer (not in Azure) to the Azure SSRS portal.

 

Copper Contributor

Hello,

Thank you for writing this article, it surely cleared some things up.

However, I do have an additional question and I hope you can take your time to help me with this.

 

We're currently in the progress of wanting to move our application to Azure from an on-premise situation. One of the things holding us back is the SSRS issue. I understand that I need to create an Azure VM and I am comfortable with it.

However, I want my databases, plural, hosted as Azure SQL managed databases.

 

My question: how would I license this? Can I use an express version on the SSRS VM to hold it's two databases?

But then how would I license SSRS? Normally it is licensed through an SQL license, but as I said, I want to use it with multiple external managed Azure SQL databases.

 

Is this at all possible?

Copper Contributor

Hi

The research I did were for SQL Managed INSTANCE (not Managed database)

The reporting Services database CANNOT be hosted on a Managed Instance

I figure it would be the same for managed database (individual database)

But even if it is supported, in order for reports to communicate with your main database AND the reporting database you would need to allow to Azure database to communicate with each other - I know it is not that easy to do - A lot of steps.

 

As for putting SSRS on SQL Express, this is a break of the licence. SSRS services must run on same server as SQL service.
Oh but you dont have a full SQL service licence, you have a SQL Database licence. Does this licence allow you to install SSRS. Hum not sure.

Back to the Managed instance..... since the ReportServer databse cannot be on the SQ Lmanaged instance, the only solution is to buy a PowerBI Premium licence ... hence the whole point of this post

Copper Contributor

Let me rephrase the question.

If I would want a situation like the last paragraph of this post (you were right by the way about SSRS on SQL Express being a break of license): "(New) Hosting report server databases in Azure SQL Managed Instance".

How would I license SSRS?

Copper Contributor

I am not a MS employee. I just a professional like you

Reread the article from the top.

Some of the answer are there

 

As stated in the article, it is NOT possible to host the two SSRS database in an SQL Managed instance

Microsoft

@mtrudel337 , two "system" databases of SSRS, with default names ReportServer and ReportServerTempDB can be hosted on Azure SQL Managed Instance as long as SSRS 2017 or newer SSRS release is used. That's the main topic of this blog post, as its title suggests. 

 

I can confirm that Azure SQL Database (another PaaS service from the Azure SQL family) cannot host two "system" databases of SSRS, regardless of SSRS release. 

 

SSRS as a stateless report server (not talking about its two system databases here) cannot be hosted on Azure SQL Managed Instance. That's what Azure VM is needed for, if you want to move your on-prem SSRS installation to Azure. SSRS hosted on Azure VM can connect for reporting purposes to any user databases hosted in Azure SQL Database or Azure SQL Managed Instance, as long as there is connectivity established between the two, and SQL authentication used. 

 

I hope this clarification helps, and I am more than happy to make it more clear in the article itself if you see opportunity for improvement there.

 

Thanks.

 

 

Copper Contributor

Then if you host an Azure VM with SSRS, is it already licensed by paying for that VM? (Through that hybrid thing maybe?) Or would I need to buy / rent a seperate license? If so: how / where?

Copper Contributor

In my case I purchased an Azure VM Sql Server (one single selection when creating purchasing the VM)
After a few minutes I got a WIndows Server 2019 I believe with SQL Server 2019 Stansard Pre-installed.
Downloaded SSRS installer
Installed it. 
Supplied the licence key found in the C:\????? (dont remember exactly the folder name. It is the whole SQL server ISO)
Fully licenced for SQL, SSRS, SSIS and SSAS

 

Remember, you buy an Azure SQL Server VM - Not an Azure Windows Server and then you installed your own SQL server on it.

I could have simply purchased an Azure WIndows VM and installed my already paid SQL 2012. But I decided not to go this path
I decided to scrap this licence and start fresh with Windows Server 2019 ans Sql 2019

Microsoft

@Michiel_Klaassen , you can choose among different licensing options, depending on your preference and whether you enjoy the License Mobility benefit of Software Assurance, or not.

 

If you search the Azure Marketplace for available Azure VM images containing Reporting Services, you will notice two types of images:

 

One type with name starting with {BYOL} - that's where you use your existing licenses

Another type without {BYOL} prefix - those are Pay-As-You_Go model with license included in the price.

 

Each of the types also offers two variants: Reporting Service only, and Reporting Services + SQL Server database engine.

If you want to host your two system databases of SSRS on Azure SQL Managed Instance, you don't need SQL Server database engine on the Azure VM.

If you want to host your two system databases of SSRS on the same Azure VM, you'll need an image with SQL Server database engine.

 

While browsing the available Reporting Services images, you can click on the Plans tab, and see more details regarding licensing.

 

The second part of the following blog post also describes the licensing options. You can see the Plans tab on the second screenshot in the article:

 

Azure SQL VM Automatic Registration and Reporting Services Images (microsoft.com) 

 

I hope this helped.

Copper Contributor

Right! I get it now. Thank you very, very much both @mtrudel337 and @Mladen Andzic !

Copper Contributor

@Mladen Andzic Hi, are the Paginated reports now(2023) supported in both the Pro and Premium Licenses?

Microsoft

@Mladen Andzic 

If you configure SSRS on VM with Azure SQL MI for reporting databases, how does to Roles and Permission works at the reports/ folder level? If SSRS on VM is a shared infrastructure, I want to grant roles and permission at the folder level to specific application users and groups. 

I am not able to find a clear answer on it. Could you please provide guidance on how access control works with SSRS VM with SQL MI?

Microsoft

@LineshGajera , hosting two system databases of SSRS on Azure SQL Managed Instance doesn't change anything regarding the SSRS roles and permissions model. You configure it the same way you do it with SSRS on any other shared infrastructure e.g. in your own data center.

Co-Authors
Version history
Last update:
‎Sep 15 2022 05:55 AM
Updated by: