# SQL Server Reporting Services

SQL Server Reporting Services (SSRS) is a server-based report generating software system from Microsoft. It is part of a suite of Microsoft SQL Server services, including SSAS (SQL Server Analysis Services) and SSIS (SQL Server Integration Services).
Administered via a web interface, it can be used to prepare and deliver a variety of interactive and printed reports. The SSRS service provides an interface into Microsoft Visual Studio so that developers as well as SQL administrators can connect to SQL databases and use SSRS tools to format SQL reports in many complex ways. It also provides a 'Report Builder' tool for less technical users to format SQL reports of lesser complexity.
SSRS competes with Crystal Reports and other business intelligence tools.

## History

Reporting Services was first released in 2004 as an add-on to SQL Server 2000. Subsequent versions have been:
* Second version with SQL Server 2005 in November 2005
* Third as part of SQL Server 2008 R2 in April 2010
* Fourth version as part of SQL Server 2012 in March 2012
* Fifth version as part of SQL Server 2014 in March 2014
* Sixth version as part of SQL Server 2016 in March 2016
* Seventh version as part of SQL Server 2017 in October 2017
* Eighth version as part of SQL Server 2019 in November 2019

## Packaging

* Microsoft SQL Server Developer, Standard, and Enterprise editions all include SSRS as an install option.
* The free SQL Server Express includes a limited version.

## Use

SQL Server Data Tools for Business Intelligence (SSDT BI) reduces the RDL (Report Definition Language) component to graphic icons in a GUI (Graphical User Interface). In this way, instead of writing code, the user can drag-and-drop graphic icons into an SSRS report format for most aspects of the SSRS report.
Reports defined by RDL can be downloaded to a variety of formats including Excel, PDF, CSV, XML, TIFF (and other image formats), and HTML Web Archive. SQL Server 2008 and 2012 SSRS can also prepare reports in Microsoft Word (DOC) format, while third-party report generators offer additional output formats.
Users can interact with the Report Server web service directly, or instead use Report Manager, a Web-based application that interfaces with the Report Server web service. With Report Manager, users can view, subscribe to, and manage reports as well as manage and maintain data sources and security settings. Report Manager can also deliver SQL reports by e-mail, or place them on a file share.
Security is role-based and can be assigned on an individual item, such as a report or data source, a folder of items, or site wide. Security roles and rights are inherited and can be overloaded.
Typically the reports are only revealed to users able to run them, and SQL connections in the source allow anyone to run with sufficient privileges. This is because configuring Windows Authentication through the reports execution is laborious and time-consuming: a Server Principal Name record (requiring DOMAIN ADMINISTRATOR access) is created in Active Directory associating the Sql Server Reporting service to the user the service runs under on the server (a network user to facilitate querying the Active Directory)... and the service account user has to have the delegation option enabled, the server must be trusted for delegation too; the windows users wishing to run reports must be set to allow delegation - so Kerberos authentication protocols will be used. The reporting service itself has to have the configuration edited to enable Kerberos protocols... but then the reports will be secure and only display data the individual users are permitted to (based on SQL security configuration).
RDL reports can be viewed by using the standalone Report Server that comes with Microsoft SQL Server, or by using the ASP.NET ReportViewer web control, or by using the ReportViewer Windows Forms control. The latter method allows reports to be embedded directly into web pages or .NET Windows applications. The ReportViewer control will process reports by: (a) server processing, where the report is rendered by the Report Server; or (b) local processing, where the control renders the RDL file itself.
SQL Server Reporting Services also support ad hoc reports: the designer develops a report schema and deploys it on the reporting server, where the user can choose relevant fields/data and generate reports. Users can then download the reports locally.
Microsoft SQL Server 2012 SP1 expands Microsoft support for viewing reports to mobile platforms, including Microsoft Surface, Apple iOS 6 and Windows Phone 8.

## Power BI Report Builder

Power BI Report Builder is a variant of the SSRS application for building paginated reports, with some features added and branded under the Power BI platform. The "Power BI Report Builder" application (not to be confused with "Report builder", the standalone SSRS tool) produces RDL reports (.rdl files, similar to SSRS), in contrast to the interactive .pbix files of regular Power BI reports (produced for example with the Power BI Desktop application). A possible reason for introducing SSRS for Power BI may be that it fills a void in the current Power BI software when it comes to printing pdf or paper with good control of pagination and formatting of printed content, or to consolidate Microsoft's reporting software' under the Power BI brand. Similar to regular Power BI reports, paginated reports can also be published to the Power BI Service, and can also be connected to shared Power BI datasets. Paginated reports with Power BI Report Builder can be developed for free locally, but a Premium Power BI workspace is needed for publishing a report to the Power BI Service. SSRS reports can be migrated to Power BI using the "Power BI Report Builder".