Verwalten einer Berichtsserver-Datenbank

Eine Reporting Services-Bereitstellung verwendet zwei relationale SQL Server-Datenbanken für den Zentralspeicher. Die Namen der Datenbanken lauten standardmäßig ReportServer und ReportServerTempdb. ReportServerTempdb wird mit der primären Berichtsserver-Datenbank erstellt und dient zur Speicherung von temporären Daten, Sitzungsinformationen und zwischengespeicherten Berichten.

In Reporting Services umfassen die Aufgaben der Datenbankverwaltung das Sichern und Wiederherstellen der Berichtsserver-Datenbanken sowie das Verwalten der Verschlüsselungsschlüssel, mit denen vertrauliche Daten verschlüsselt und entschlüsselt werden.

Für die Verwaltung der Berichtsserver-Datenbanken enthält SQL Server eine Reihe von Tools.

  • Zum Sichern oder Wiederherstellen der Berichtsserver-Datenbank, zum Verschieben einer Berichtsserver-Datenbank oder zum Wiederherstellen einer Berichtsserver-Datenbank können Sie SQL Server Management Studio, die Transact-SQL-Befehle oder die Eingabeaufforderungs-Hilfsprogramme für Datenbanken verwenden. Anweisungen finden Sie in der SQL Server-Onlinedokumentation unter Verschieben von Berichtsserver-Datenbanken auf andere Computer.

  • Um vorhandene Datenbankinhalte in eine andere Berichtsserver-Datenbank zu kopieren, können Sie eine Kopie einer Berichtsserver-Datenbank anfügen und sie mit einer anderen Berichtsserverinstanz verwenden. Oder Sie können ein Skript erstellen und ausführen, das SOAP-Aufrufe verwendet, um Berichtsserverinhalte in einer neuen Datenbank neu zu erstellen. Sie können das Hilfsprogramm rs verwenden, um das Skript auszuführen.

  • Um Verbindungen zwischen dem Berichtsserver und der Berichtsserver-Datenbank zu verwalten und um festzustellen, welche Berichtsserver-Datenbank von einer bestimmten Berichtsserverinstanz verwendet wird, steht Ihnen die Seite Setup der Datenbank im Reporting Services-Konfigurationstool zur Verfügung. Weitere Informationen über die Berichtsserververbindung zur Berichtsserver-Datenbank finden Sie unter Konfigurieren einer Berichtsserver-Datenbankverbindung.

SQL Server-Anmelde- und Datenbankberechtigungen

Die Berichtsserver-Datenbanken werden intern vom Berichtserver verwendet. Die Verbindungen zu Datenbanken werden durch den Berichtsserverdienst hergestellt. Mit dem Reporting Services-Konfigurationstool können Sie die Berichtsserververbindung zur Berichtsserver-Datenbank konfigurieren.

Bei den Anmeldeinformationen für die Berichtsserververbindung zur Datenbank kann es sich um das Dienstkonto, ein lokales Benutzerkonto oder Domänenbenutzerkonto unter Windows oder einen SQL Server-Datenbankbenutzer handeln. Sie müssen ein vorhandenes Konto für die Verbindung auswählen; Reporting Services erstellt keine Konten für Sie.

Eine SQL Server-Anmeldung für die Berichtsserver-Datenbank wird automatisch für das von Ihnen angegebene Konto erstellt.

Berechtigungen für die Datenbank werden auch automatisch konfiguriert. Das Reporting Services-Konfigurationstool weist das Konto oder den Datenbankbenutzer der Public-Rolle und der RSExecRole-Rolle für die Berichtsserver-Datenbanken hinzu. RSExecRole bietet Berechtigungen für den Zugriff auf die Datenbanktabellen und für das Ausführen von gespeicherten Prozeduren. RSExecRole wird in master und msdb erstellt, wenn Sie die Berichtsserver-Datenbank erstellen. Die RSExecRole ist ein Mitglied der db_owner-Rolle für die Berichtsserver-Datenbanken, mit der der Berichtsserver sein eigenes Schema zur Unterstützung eines automatischen Upgradeprozesses aktualisieren kann.

Benennungskonventionen für die Berichtsserver-Datenbanken

Beim Erstellen der primären Datenbank muss der Name der Datenbank den Regeln für Bezeichner entsprechen. Der Name der temporären Datenbank besteht immer aus dem Namen der primären Berichtsserver-Datenbank und dem Suffix Tempdb. Sie können keinen anderen Namen für die temporäre Datenbank auswählen.

Das Umbenennen einer Berichtsserver-Datenbank wird nicht unterstützt, da die Berichtsserver-Datenbanken als interne Komponenten betrachtet werden. Das Umbenennen der Berichtsserver-Datenbanken führt zu Fehlern. Besonders wenn Sie die primäre Datenbank umbenennen, wird in einer Fehlermeldung darauf hingewiesen, dass die Datenbanknamen nicht synchronisiert sind. Wenn Sie die ReportServerTempdb-Datenbank umbenennen, tritt später beim Ausführen von Berichten der folgende interne Fehler auf:

"Interner Fehler beim Berichtsserver. Weitere Informationen finden Sie im Fehlerprotokoll. (rsInternalError)

Ungültiger Objektname 'ReportServerTempDB.dbo.PersistedStream'."

Dieser Fehler tritt auf, weil der ReportServerTempdb-Name intern gespeichert und von gespeicherten Prozeduren zum Ausführen interner Vorgänge verwendet wird. Nach dem Umbenennen der temporären Datenbank können die gespeicherten Prozeduren nicht mehr ordnungsgemäß ausgeführt werden.

Aktivieren von Momentaufnahmeisolation auf der Berichtsserver-Datenbank

Sie können keine Momentaufnahmeisolation auf der Berichtsserver-Datenbank aktivieren. Wenn die Momentaufnahmeisolation nicht aktiviert ist, tritt folgender Fehler auf: "Der ausgewählte Bericht ist nicht bereit für die Anzeige. Der Bericht wird immer noch gerendert, oder eine Berichtsmomentaufnahme ist nicht verfügbar."

Wenn Sie die Momentaufnahmeisolation nicht absichtlich aktiviert haben, wurde das Attribut unter Umständen von einer anderen Anwendung festgelegt oder für die model-Datenbank ist die Momentaufnahmeisolation aktiviert, sodass alle neuen Datenbanken diese Einstellung übernehmen.

Um die Momentaufnahmeisolation auf der Berichtsserver-Datenbank zu deaktivieren, starten Sie Management Studio, öffnen Sie ein neues Abfragefenster, fügen Sie den Skripttext ein, und führen Sie das Skript aus:

ALTER DATABASE ReportServer
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServerTempdb
SET ALLOW_SNAPSHOT_ISOLATION OFF
ALTER DATABASE ReportServer
SET READ_COMMITTED_SNAPSHOT OFF
ALTER DATABASE ReportServerTempDb
SET READ_COMMITTED_SNAPSHOT OFF

Informationen zu Datenbankversionen

In Reporting Services stehen keine expliziten Informationen zur Datenbankversion zur Verfügung. Da Datenbankversionen jedoch immer mit Produktversionen synchronisiert werden, können Sie anhand der Informationen zur Produktversion erkennen, wenn sich die Datenbankversion geändert hat. Die Informationen zur Produktversion für Reporting Services werden über die Dateiversionsinformationen in den Protokolldateien, in den Headern aller SOAP-Aufrufe und beim Herstellen einer Verbindung mit der Berichtsserver-URL angezeigt (z. B. beim Öffnen eines Browsers und Eingabe von https://localhost/reportserver). Weitere Informationen finden Sie unter Vorgehensweise: Erkennen der Versionsinformationen (Reporting Services).