Benutzerdefinierte Berichte in Management Studio
gilt für:SQL Server
Azure SQL-Datenbank
azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
In SQL Server Management Studio zeigen viele Objekt-Explorer-Knoten eine Reihe von Standardberichten an, die von Microsoft erstellt werden. Diese Berichte fassen in der Regel angeforderte Serverinformationen zusammen. Ab SQL Server 2005 (9.x) Service Pack 2 können Administratoren benutzerdefinierte Berichte ausführen, die in SQL Server Data Tools (SSDT) in Management Studio erstellt wurden.
Implementierung
Benutzerdefinierte Berichte werden als Berichtsdefinitionsdateien (RDL) gespeichert und mithilfe der Berichtsdefinitionssprache (Report Definition Language, RDL) erstellt. RDL enthält Datenabruf- und Layoutinformationen für einen Bericht in einem XML-Format. RDL ist ein offenes Schema. Entwickler können RDL mit zusätzlichen Attributen und Elementen erweitern. Berichte können eine beliebige gültige Transact-SQL-Anweisung innerhalb des Berichts ausführen.
Wenn der Objekt-Explorer mit einem Server verbunden ist, können benutzerdefinierte Berichte im Kontext der aktuellen Auswahl im Objekt-Explorer ausgeführt werden, wenn sie Berichtsparameter dieses Knotens verwenden. Auf diese Weise kann ein Bericht den aktuellen Kontext verwenden, z. B. die aktuelle Datenbank; oder ein konsistenter Kontext, z. B. das Angeben einer bestimmten Datenbank als Teil der Transact-SQL Anweisung, die im benutzerdefinierten Bericht enthalten ist.
Ausführen eines benutzerdefinierten Berichts
Sie können einen benutzerdefinierten Bericht in Management Studio wie folgt ausführen:
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, der RDL-Dateien enthält, 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 einen benutzerdefinierten Bericht aus der liste der zuletzt verwendeten Dateien aus.
Begrenzungen
Berücksichtigen Sie beim Arbeiten mit benutzerdefinierten Berichten die folgenden Einschränkungen:
Um die unbeabsichtigte Ausführung von bösartigem Code zu verhindern, kann Management Studio nicht so konfiguriert werden, dass automatisch ein Bericht ausgeführt wird, auch wenn das Dateisystem so konfiguriert ist, dass RDL-Dateien mit Management Studio verknüpft werden. Berichte können nicht programmgesteuert in Management Studio ausgeführt werden und können nicht über die Befehlszeile über Management Studio ausgeführt werden.
Sie können benutzerdefinierte Berichte in einem Kontext ausführen, der die erwarteten Werte nicht erzeugt. Sie können z. B. einen Bericht zur Replikation im Kontext einer Datenbank ausführen, die nicht an der Replikation beteiligt ist, oder einen Bericht als Benutzer ausführen, der nicht über die Berechtigung zum Zugreifen auf Informationen verfügt, die zum Generieren eines genauen Berichts erforderlich sind. Der Ersteller des benutzerdefinierten Berichts ist für die Gültigkeit der Berichtsstruktur und des zugehörigen Kontexts verantwortlich.
Sie können der Liste der Standardberichte keinen benutzerdefinierten Bericht hinzufügen.
Der vom Bericht verarbeitete Code kann sich auf die Serverleistung auswirken.
Benutzerdefinierte Berichte unterstützen keine Unterberichte.
Der Befehlstext für jede Abfrage innerhalb des Berichts darf nicht über einen Ausdruck definiert werden.
Jeder Abfrageparameter, der in einem Befehl (Abfrage) verwendet wird, kann nur auf einen einzelnen Berichtsparameter verweisen und keine Ausdrucksoperatoren verwenden.
Nur Die Befehlstypen "Text" und "Gespeicherte Prozedur" werden für Berichtsbefehle (Abfragen) unterstützt.
Das Berichtsframework bietet keine Möglichkeit, Parameter bei den Abfragen zu maskieren. Abfrageautoren müssen sicherstellen, dass ihre Abfragen von SQL-Einfügungsangriffen frei sind.
Verwalten von benutzerdefinierten Berichten
Es wird empfohlen, dass Benutzer mit vielen benutzerdefinierten Berichten diese mithilfe von Dateisystemordnern organisieren, die über entsprechende NTFS-Dateisystemberechtigungen verfügen.
Erlaubnisse
Benutzerdefinierte Berichte werden mithilfe der Berechtigungen des aktuellen Benutzers ausgeführt. Um zu verhindern, dass ein böswilliger Benutzer die vom Bericht ausgeführten Abfragen ändert, sollten Berechtigungen für den Dateisystemordner, der die Berichtsdateien enthält, festgelegt werden, um den Zugriff einzuschränken.
Sowohl der Benutzer als auch das Konto, das vom SQL Server-Dienst verwendet wird, erfordern Lesezugriff auf den Dateisystemordner, der die Berichtsdateien enthält.
Jeder gültige .NET Framework-Befehl kann in einen Bericht eingebettet werden, der Befehl wird jedoch nicht ausgeführt.
Vorsicht
Jede gültige Transact-SQL-Anweisung kann in einen Bericht eingebettet und ausgeführt werden. Das Ausführen eines Berichts unter einem Benutzerkonto mit hohen Rechten ermöglicht die Ausführung dieser eingebetteten Anweisungen ohne Herausforderung.
Siehe auch
Hinzufügen eines benutzerdefinierten Berichts zu Management Studio-
Warnungen zum Ausführen von benutzerdefinierten Berichten aufheben
Verwenden von benutzerdefinierten Berichten mit Eigenschaften des Objekt-Explorer-Knotens