2010-03-23

Caching-Problem der BISE1

 

Herausforderung

Mit Hilfe einer Datenbanktabelle sollen dynamisch vom im Dashboard eigeloggtem Benutzer Daten auf die Benutzerberechtigungen, die Datensätze sehen zu dürfen, geprüft werden.

Die Idee war mit der evaluate-Funktion eine Funktion in der Datenbank aufzurufen, die als Parameter ValueOf(NQ_SESSSION_USER) erhält und so seine Berechtigungen für jeden einzelnen Datensatz prüfen kann.

image

image

Dieser Mechanismus funktioniert auch einwandfrei, hat allerdings den Nachteil das ValueOf(NQ_SESSSION_USER) dynamisch ist und so der Bi Server keine Caching Einträge für die Abfragen schreibt.

In der BISE Dokumentation findet sich auch ein Hinweis auf diese Einschränkung:

Non-cacheable SQL element:

If a SQL request contains Current_Timestamp, Current_Time, Rand, Populate, or a parameter marker then it is not added to the cache.

 

Lösung

Da wir sehr große Abfragen auf die Datenbank machen und auf das Caching nicht verzichten können, haben wir uns von dieser Idee verabschiedet und pflegen die Berechtigungen nun statisch für jeden Benutzer / jede Gruppe im BI Server.

image

Ausblick

Im Laufe des Projekts wollen wir mit einem Script versuchen die Berechtigungen jedes Benutzer aus der Datenbank zu lesen und diese per Script auch in das Security-Modell der rpd-Datei zuschreiben.

Keine Kommentare:

Kommentar veröffentlichen