SSRS Server Configuration

Overview

SSRS Server Configuration brings together three things about a report server that are normally in three different places:

  • The settings. ConfigurationInfo holds several dozen name and value pairs, and the web portal exposes only a handful. The ones that matter most to a database administrator, such as how many days of execution log are kept, the logging level, the default report timeout and snapshot compression, are among the ones it does not show.
  • The keys. Every report server instance that has been initialized against this catalog has a row in Keys with its machine and instance name. After a restore, that list is the first thing to check.
  • The version history. The upgrade history tables record the last schema upgrade step the catalog ran, the last server upgrade step, and what edition and build last wrote to it. The three use different naming schemes, so the page shows them side by side rather than comparing them.

A short list of settings is compared against its shipped default. Where a default depends on the edition, the installer or the version, the page shows the value without claiming it was changed.


Where to find it

Only shown for a database holding a Reporting Services catalog.

  • Tree: expand the report server database, then Real Time > SSRS > Server Configuration.
  • SSRS What Fills This Database: the Configuration toolbar button, or right click a table and choose The server settings, or How long the log is kept on ExecutionLogStorage.
  • SSRS Permissions: the Configuration toolbar button, or right click and choose The server settings.
The SSRS Server Configuration report: settings worth a second look above the grid of every setting
Only the rows worth a second look get a bar. The grid holds every setting, key and version row.

Requirements

  • A Reporting Services catalog database. The SSRS pages are offered when dbo.ExecutionLog and dbo.Catalog both exist.
  • SELECT on dbo.ConfigurationInfo, dbo.Keys, dbo.DBUpgradeHistory, dbo.ServerUpgradeHistory and dbo.ProductInfoHistory.
  • The query is given 60 seconds.

The key material itself is never read. From Keys the page selects the machine name, instance name, client number and installation id, and only whether a symmetric key is present. The placeholder row every catalog is created with (client -1, no machine name, no keys) is left out, because it is not an instance.


Reading the chart

The SSRS server configuration chart
One bar per row that differs from its known default or is worth a second look, serious ones first.

Nothing on this page has a magnitude, so the chart is a list of findings. Every bar is the same length. The label is the setting name, the line under it is what the setting does or why it was flagged, and the value on the right is the current value.

Only two kinds of row get a bar:

Color Meaning
Red Worth a second look regardless of the default (see the list below), or a key row with no symmetric key
Amber A setting whose shipped default is known and whose value is different

Red rows come first, then amber, each group in alphabetical order, and red bars also get an amber outline. A report server with nothing changed and nothing notable draws an empty chart that says Nothing here is set to anything surprising. Hover over a bar for the value, the shipped default where it is known, and the explanation.

The page has no views to switch between. Its toolbar buttons open SSRS What Fills This Database (Storage), SSRS Failed Executions (Failed runs) and SSRS Permissions (Permissions).

What is flagged red

Setting Flagged when Why
EnableExecutionLogging False Nothing records what runs, and every page built on the execution log reads as an idle server
EnableRemoteErrors True A failing report shows its data source’s error text to whoever opened it
ExecutionLogLevel Verbose The parameters of every run are recorded, which fills ExecutionLogStorage faster
ExecutionLogDaysKept 0 or less, or more than 180 Never trimmed, or kept far longer than the shipped sixty days

SystemSnapshotLimit is not on this list. Its shipped default is -1, unlimited, so an untouched server has it. Its row in the grid explains what -1 means (a report that keeps history and sets no limit of its own is never trimmed) without flagging it, and a value other than -1 shows amber as a changed setting.


Reading the grid

The SSRS server configuration grid
Every setting in name order, then the key rows, then the three version rows.
Column What it holds
Name The setting name, the machine and instance for a key row, or the version row’s name
Kind Setting, Encryption key or Version
Value The setting’s value, the installation id for a key row, or the version recorded
Shipped default The default, for the settings where the page knows it
What it does What the setting controls, why it was flagged, or what the key or version row means

Value and What it does are drawn in red or amber on a flagged row.

Settings with a known default

Setting Shipped default
EditSessionTimeout 7200
EnableClientPrinting True
EnableExecutionLogging True
EnableIntegratedSecurity true
EnableMyReports False
EnableRemoteErrors False
ExecutionLogDaysKept 60
ExecutionLogLevel Normal
MaxFileSizeMb 1000
SessionTimeout 600
SharePointIntegrated False
SnapshotCompression SQL
StoredParametersLifetime 180
StoredParametersThreshold 1500
SystemReportTimeout 1800
SystemSnapshotLimit -1

The comparison ignores case. Every other setting is shown with its value and an empty Shipped default, which means the page makes no claim about it either way.

Key rows

One per real row in Keys, named by machine and instance. A row with a symmetric key is described as an instance that has been initialized against the catalog and can read its stored credentials. A row without one is flagged red and described as unable to read them. The placeholder row with client -1 is not shown.

Version rows

  • Catalog schema version – the latest DBUpgradeHistory entry, which is the name of the last upgrade step (for example GetAllPropertiesLinked2).
  • Report server version – the latest ServerUpgradeHistory entry, a release label that follows the catalog’s own numbering rather than the product version (an SSRS 2019 catalog can record 2017).
  • Edition and build – the latest ProductInfoHistory entry, the SKU and build number.

Each says when it was recorded and, for the first two, by whom.


Findings

The headline counts the settings, how many are away from their shipped default (or says all are at their defaults), how many initialized instances there are (rows in Keys holding a symmetric key), and the build from ProductInfoHistory, or the report server version when no build is recorded. The line under it adds, where they apply:

  • The reason for each red setting.
  • When no instance is initialized: that nothing can currently read the credentials stored in the catalog, which is what a database restored without its encryption key looks like.
  • When more than one is initialized: that this is a scale out deployment and all of them share these settings.
  • When an instance is listed with no symmetric key: that it asked to join the catalog and was never activated.
  • That a setting is only called changed where its shipped default is known.
  • That the page reads the catalog tables directly.

The version rows are not compared with each other, because nothing in the catalog maps an upgrade step name onto a release label or a build.


Actions

  • Click or double click a bar to select that row in the grid.
  • Right click a bar for the same menu as that row in the grid.
  • Right click a grid row, below the usual Copy, Copy with Headers and Select All, for:
  • Right click an empty part of the chart to copy the chart to the clipboard.

Nothing on this page writes a setting. The report server service caches ConfigurationInfo, so a value changed underneath it takes effect at some later point, if at all. Change these through the Reporting Services Configuration Manager or the web portal’s site settings.


Where the data comes from

Five result sets in one batch:

  • dbo.ConfigurationInfo, name and value. Value is ntext, so it is converted to NVARCHAR on the way out.
  • dbo.Keys: machine name, instance name, client, installation id, and whether SymmetricKey is present, leaving out the client -1 placeholder row.
  • The newest row of dbo.DBUpgradeHistory and of dbo.ServerUpgradeHistory, by UpgradeID.
  • The newest row of dbo.ProductInfoHistory, by date.


Frequently asked questions

Is a SystemSnapshotLimit of -1 a problem? Not on its own. Minus one, unlimited, is the shipped default. It only matters for a report that keeps history and sets no limit of its own, and SSRS Snapshots and History shows whether any report does. The page explains the value in the grid and does not flag it.

Why does the Report server version say an older release than the build? ServerUpgradeHistory records the catalog’s own upgrade labels, which do not follow the product version. The build number in the Edition and build row is the product’s own.

Why does a setting have no shipped default? Its default depends on the edition, the installer or the version. The page only claims a default where it is known and stable, so it does not report untouched settings as changed.

What does a key row with no symmetric key mean? The instance is listed in Keys but has no symmetric key there, so it cannot decrypt the connection strings and credentials stored in this catalog. The page describes a catalog with no instance listed at all as what a database restored without its encryption key looks like.