Cognos Security Problem beim Query Reuse vs. Abfrageperformance

Nochmal ein Punkt zum Thema Abfragegeschwindigkeit bei Cognos 8. Um die Performance zu steigern wurde in Cognos 8 eine nettes Feature eingebaut “Query Reuse“. Abfragen, die von einem Report wiederverwendet werden können werden mit dieser Option nicht erneut von der Datenbank abgerufen sondern aus dem Cache geholt.

Prinzipiell eine sinnvolle Einrichtung – leider erkennt Cognos nicht immer richtig wann die Daten tatsächlich neu abgefragt werden müssen. Beispiel: Über eine User-Session-Variable wird im FrameworkManager die Security auf Userebene erstellt. Der Username wird so z.B. in der WHERE-Klausel einer Abfrage um den User ergänzt. Wird nun Cognos erlaubt Abfragen wieder zu verwenden wird die Session-variable zwar in der Anzeige im Report ausgetauscht aber die Daten werden nicht erneut abgefragt. Das Resultat ist, dass z.B. ein Benutzer die Daten seines Vorgängers angezeigt bekommt, was tatsächlich ein erhebliches Sicherheitsrisiko darstellt.

Die Lösung ist hier ganz einfach und kann an zwei Stellen gelöst werden. Der Ansatz ist es dem Cognos8 Dienst zu das wiederverwenden der Abfragen zu untersagen. Die erste Stelle ist in den Eigenschaften der Governors-Einstellungen des Framework Manager Packages zu finden. Hier ist unter dem Menüpunkt “Package”/”Edit Governors…” die Option “Allow usage of local cache” auszuschalten.

Der zweite Weg ist ein wenig radikaler und bezieht sich auf alle Package gleichzeitig: In dem Installationsverzeichnis unter c8\configuration liegt eine Datei Namens “CQEConfig.xml” (ist diese noch nicht vorhanden kann die bestehende “CQEConfig.xml.samples” umbenannt werden. Diese Datei kann in einem Texteditor geöffnet und folgender Einrtag geändert werden:

Suchen Sie nach dem Abschnitt

und ändern den Wert QueryReuse auf 0 (name=”queryReuse” value=”0″).

Nach dem Speichern der Datei muss der Cognos Dienst neu gestartet werden.

Tipp: Der Wert kann bis auf Maximal 10 hochgesetzt werden. Prinzipiell ist diese Eigenschaft ja positiv und entlastet den Datenbank-Server. Prüfen Sie also in Ihrer Umgebung ob ein QueryReuse genutzt werden kann und aktivieren Sie dieses Feature.

Jens Bäumler (Apparo Group)

Ähnliche Themen

Schreibe einen Kommentar

WP Twitter Auto Publish Powered By : XYZScripts.com