Eine wirklich sehr gute Funktion die ORACLE zur Verfügung stellt ist der "Dialog Act as". Mit dem "Dialog Act as" ist es möglich sich mit einem anderen Anwender ohne Password einzuloggen. Damit ist es z.b. möglich neu vergebene Berechtigungen des Anwenders zu testen oder Fehler die bei einem Anwender auftreten sich direkt anzuschauen.
Um diese Funktion zu aktivieren, müssen allerdings einige Vorbereitungen durchgeführt werden.
Datenbank-Tabelle
Mit der "Dialog Act as" Funktion ist es erst mal nicht möglich automatisch alle Anwender zu steuern. Die zu steuernden Anwender werden in einer Datenbank Tabelle hinterlegt.
Der Aufbau der DB-Tabelle sollte wie folgt ausehen:
Im folgenden Bild zwei Beispiel-Einträge:
Der User thorn darf den User1_name und User2_name steuern. Bei der Spalte ProxyID und TargetID werden die OBIEE Login-Namen eingetragen.
ORACLE BI Admin-Tool: Session Variablen
Über das Admin-Toll werden zwei Session-Variablen (Proxy und ProxyLevel) angelegt, die über einen SELECT gefüllt werden.
1) Proxy: select targetid from obiee_proxy_user where UPPER('VALUEOF(NQ_SESSION.RUNAS)')=UPPER(targetid) and UPPER(':USER')=UPPER(proxyId)
2) ProxyLevel: select proxylevel from obiee_proxy_user where UPPER('VALUEOF(NQ_SESSION.RUNAS)')=UPPER(targetid) and UPPER('VALUEOF(NQ_SESSION.RUNASORIGUSER)')=UPPER(proxyId)
LogonParamSQLTemplate.xml
Für das Drop-Feld in der WEB-Oberfläche muss ein LogonParamSQLTemplate.xml in folgender Form erstellt werden.
<?xml version="1.0" encoding="UTF-8"?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web.messageSystem">
<WebMessageTable table="Messages" system="SecurityTemplates">
<WebMessage name="LogonParamSQLTemplate">
<XML>
<logonParam name="RUNAS">
<getValues>EXECUTE PHYSICAL CONNECTION POOL "SCHEMA_NAME"."SCHEMA_NAME" select targetId from OBIEE_PROXY_USER where proxyId='@{USERID}'</getValues>
<verifyValue>EXECUTE PHYSICAL CONNECTION POOL "SCHEMA_NAME"."SCHEMA_NAME" select targetId from OBIEE_PROXY_USER where proxyId ='@{USERID}' and targetId='@{VALUE}'</verifyValue>
<getDelegateUsers>EXECUTE PHYSICAL CONNECTION POOL "SCHEMA_NAME"."SCHEMA_NAME" select proxyId, proxyLevel from OBIEE_PROXY_USER where targetId ='@{USERID}'</getDelegateUsers>
</logonParam>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>
Achtung: Der Platzhalter "SCHEMA_NAME" muss ersetzt werden durch den Schema Namen, in dem die Tabelle OBIEE_PROXY_USER angelegt wurde.
Die LogonParamSQLTemplate.xml Datei wird in das folgende Verzeichnis kopiert:
MW_HOME\instances\instance1\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\msgdb\customMessages
Instanceconfig.xml
Zur Bekanntgabe und Anzeige des Drop-Down Feldes auf der WEB-Oberfläche muss in der instanceconfig.xml (von mir empfohlen) vor dem Tag </ServerInstance> folgender Eintrag erfolgen:
<LogonParam>
<TemplateMessageName>LogonParamSQLTemplate</TemplateMessageName>
<MaxValues>100</MaxValues>
</LogonParam>
...
</ServerInstance>
Abschluss
Zum Abschluss muss soch der BI-Server und der Presentation-Server neu gestartet werden..