You are not logged in.
Pages: 1
Topic closed
Hallo,
gibt es eine Möglichkeit die in einem Report zu verwendende Datenbank als Parameter des reports zu übergeben?
Hintergrund ist, wir haben auf dem gleiche mysql server verschiedene identische datenbanken verschiedener mandanten.
Ich möchte den report nutzern jetzt die Möglichkeit geben, die Datenbank auf die der sql Befehl angewendet werden soll idealerweise als dropdown auszuwählen. Ich möchte vermeiden den gleichen report n-mal kopieren zu müssen.
Ich habe bereits versuch den datenbanknamen als parameter im sql befehl zu verwenden:
Select * From ${db_parameter}.tabelle ...
Die parameter werden aber immer in Anführungszeichen eingesetzt, wodurch kein valider sql befehl rauskommt.
Alternativ könnte ich für jeden Mandanten eine eigene datenquelle mit default datenbank anlegen, bräuchte dann aber eine Möglichkeit für die Nutzer (nicht admin) zwischen bestimmten datenquellen zu wechseln.
Gibt es evtl eine andere option das zu erreichen?
Danke
Offline
Hallo mat,
$!{parameter} unterdrückt die Anführungszeichen. Du solltest dir jedoch bewusst sein, dass sich samit evtl. ein Einfallstor für SQL-Injection auftut.
Alternativ hat ReportServer genau für diesen Anwendungsfall das Konzept "Datenquellenbundle": Benutzer können damit beim Login das zu benutzende Zielsystem auswählen.
In der Konfigurationsdatei etc/datasources/databasebundle.cf werden zunächst die Namen der verschiedenen Systeme hinterlegt. Im Anschluss wird eine Datenquelle von Typ Datenbankenbundle angelegt und die tatsächlich für das System zu verwendende Datenquelle wird festgelegt.
In Berichten wirf anschliessend immer das Datenbankenbundle als Datenquelle verwendet - die effektive Datenquelle ist durch die Auswahl des Benutzer bei der Anmeldung (unter Optionen im Login Dialog) festgelegt.
Grüße
Thorsten
Danke. So funktionierts.
Da ich für den Parameter nur vorgegebene Werte zulasse und der db user eingeschränkt ist hält sich das Risiko in Grenzen.
Offline
Pages: 1
Topic closed