Benutzerdefinierte Berichte in Management Studio

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

In SQL Server Management Studiowird von vielen Objekt-Explorer-Knoten ein Satz von Standardberichten angezeigt, die von Microsofterstellt werden. In diesen Berichten werden häufig angeforderte Serverinformationen zusammengefasst. Seit SQL Server 2005 (9.x) Service Pack 2 können in SQL Server Data Tools (SSDT) von Management Studioerstellte benutzerdefinierte Berichte von Administratoren ausgeführt werden.

Implementierung

Benutzerdefinierte Berichte werden als RDL-Dateien gespeichert und mithilfe der Berichtsdefinitionssprache (Report Definition Language, RDL) erstellt. In der Berichtsdefinitionssprache sind Informationen zum Datenabruf und Datenlayout für einen Bericht in einem XML-Format enthalten. Die Berichtsdefinitionssprache ist ein offenes Schema. Entwickler können die Berichtsdefinitionssprache mit zusätzlichen Attributen und Elementen erweitern. Jede gültige Transact-SQL-Anweisung in einem Bericht kann von Berichten ausgeführt wird.

Wurde für den Objekt-Explorer eine Verbindung mit einem Server hergestellt, können benutzerdefinierte Berichte im Kontext der aktuellen Objekt-Explorer-Auswahl ausgeführt werden, wenn von den Berichten auf Berichtsparameter dieses Knotens verwiesen wird. Dadurch wird ermöglicht, dass im Bericht der aktuelle Kontext (beispielsweise die aktuelle Datenbank) oder ein konsistenter Kontext (beispielsweise die Angabe einer designierten Datenbank als Teil der im benutzerdefinierten Bericht enthaltenen Transact-SQL-Anweisung) verwendet wird.

Ausführen eines benutzerdefinierten Berichts

Es gibt folgenden Möglichkeiten zum Ausführen eines benutzerdefinierten Berichts in Management Studio :

  • Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Knoten, zeigen Sie auf Berichte , und klicken Sie mit der linken Maustaste auf Benutzerdefinierte Berichte. Suchen Sie im Dialogfeld Datei öffnen einen Ordner mit RDL-Dateien, und öffnen Sie dann die entsprechende Berichtsdatei.

  • Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Knoten, zeigen Sie auf Berichte, zeigen Sie auf Benutzerdefinierte Berichte, und wählen Sie dann aus der Liste der zuletzt geöffneten Dateien einen benutzerdefinierten Bericht aus.

Einschränkungen

Berücksichtigen Sie bei der Verwendung benutzerdefinierter Berichte die folgenden Einschränkungen:

  • Um die unbeabsichtigte Ausführung von bösartigem Code zu verhindern, kann Management Studio auch dann nicht für das automatische Ausführen eines Berichts konfiguriert werden, wenn das Dateisystem so konfiguriert ist, dass RDL-Dateien Management Studiozugeordnet werden. In Management Studio können Berichte weder programmgesteuert noch an der Eingabeaufforderung über Management Studioausgeführt werden.

  • Benutzerdefinierte Berichte können in einem Kontext ausgeführt werden, in dem die erwarteten Werte nicht erstellt werden. Sie können beispielsweise einen Bericht über die Replikation im Kontext einer Datenbank ausführen, die nicht in der Replikation involviert ist, oder Sie können einen Bericht als ein Benutzer ausführen, der nicht über die Berechtigung für den Zugriff auf Informationen verfügt, die zum Generieren eines präzisen Berichts erforderlich sind. Der Ersteller des benutzerdefinierten Berichts ist für die Gültigkeit der Berichtsstruktur und seines Kontexts verantwortlich.

  • Sie können der Liste der Standardberichte keinen benutzerdefinierten Bericht hinzufügen.

  • Der vom Bericht verarbeitete Code kann möglicherweise Auswirkungen auf die Serverleistung haben.

  • Unterberichte werden von benutzerdefinierten Berichten nicht unterstützt.

  • Der Befehlstext für die einzelnen Abfragen im Bericht darf nicht über einen Ausdruck definiert sein.

  • Mit jedem in einem Befehl (Abfrage) verwendeten Abfrageparameter kann nur auf einen einzelnen Berichtsparameter verwiesen werden. Ausdrucksoperatoren können nicht verwendet werden.

  • Für Berichtsbefehle (Abfragen) werden nur Befehle vom Typ Text und gespeicherte Prozedur unterstützt.

  • Das Berichtsframework bietet keine Parameter zum Erstellen von Escapezeichen für die Abfragen. Abfrageautoren müssen sicherstellen, dass ihre Abfragen frei von SQL Injection-Angriffen sind.

Verwalten von benutzerdefinierten Berichten

Für Benutzer, die über eine Vielzahl benutzerdefinierter Berichte verfügen, empfiehlt es sich, diese mithilfe der Dateisystemordner zu organisieren, die über entsprechende NTFS-Dateisystemberechtigungen verfügen.

Berechtigungen

Benutzerdefinierte Berichte werden mithilfe der Berechtigungen des aktuellen Benutzers ausgeführt. Berechtigungen für den Dateisystemordner mit den Berichtsdateien müssen so festgelegt werden, dass der Zugriff eingeschränkt wird, um das Ändern der vom Bericht ausgeführten Abfragen durch einen böswilligen Benutzer zu verhindern.

Sowohl für den Benutzer als auch für das vom SQL Server -Dienst verwendete Konto ist Lesezugriff auf den Dateisystemordner mit den Berichtsdateien erforderlich.

Jeder gültige .NET Framework -Befehl kann in einen Bericht eingebettet werden, der Befehl wird jedoch nicht ausgeführt.

Achtung

Jede gültige Transact-SQL-Anweisung kann in einem Bericht eingebettet und von einem Bericht aus ausgeführt werden. Durch das Ausführen eines Berichts unter einem Benutzerkonto mit hohen Privilegien wird die problemlose Ausführung dieser eingebetteten Anweisungen ermöglicht.

Weitere Informationen

Hinzufügen eines benutzerdefinierten Berichts zu Management Studio
Aufheben der Unterdrückung von Warnungen für das Ausführen von benutzerdefinierten Berichten
Verwenden benutzerdefinierter Berichte mit Eigenschaften von Objekt-Explorer-Knoten