Storing Encrypted Data in a Report Server Database
Reporting Services stores encrypted values in the report server database and in configuration files. Most of the encrypted values are credentials that can be used to access a remote computer. This topic describes which values are encrypted, the encryption functionality used in Reporting Services, and other sources of confidential data that you should know about.
The following list describes the values that are stored in a report server database.
- Connection information and credentials used by a report server to connect to a report server database.
These values are specified and encrypted during setup, but can be updated later when you use rsconfig utility. These values are stored in the rsreportserver.config file.
- Stored credentials used by a report server to connect to external data sources that provide data to a report.
These values are defined when you configure data source information for a report, and then stored as encrypted values in a report server database. For more information, see Specifying Credential and Connection Information.
- A user account used by the report server to connect to a report server database, used to support unattended report processing for reports that do not use credentials.
This account is required under certain circumstances and can only be created through rsconfig. This value is stored in the rsreportserver.config file. You must create this account manually. For more information, see Configuring an Account for Unattended Report Processing.
- The symmetric key used for reversible encryption.
This value is also created during setup, and then stored as an encrypted value in the report server database. There is one symmetric key created for each report server that uses the database. Because the Report Server Web service and the Report Sever Windows service run under two different user accounts, the report server database stores two copies of the symmetric key, one for each service.
Encryption Functionality in Reporting Services
Reporting Services uses cryptography functionality that is available through the Windows operating system. Both symmetric and asymmetric encryption is used. Encrypted content on the report server is encrypted with a symmetric key. The symmetric key is itself encrypted with an asymmetric public key that corresponds to the computer and the user account under which the Report Server Windows service runs.
Other Sources of Confidential Data
A report server stores other data that is not encrypted, yet may contain sensitive information that you want to protect. Specifically, report history snapshots and report execution snapshots contain query results that may include data that is intended for a small group of users. If you are using snapshot functionality for reports that contain confidential data, be aware that users who can open tables in a report server database may be able to view portions of a stored report. Otherwise, the role assignments that apply to the report determine who can view the report and its report history.