システム変数に格納されたユーザー情報のレポート・データへの挿入
Publisherでは、現在のユーザーに関する情報を格納しますが、この情報にはレポート・データ・モデルからアクセスできます。
このユーザー情報は、次に説明するシステム変数に格納されています。
システム変数 | 説明 |
---|---|
xdo_user_name |
レポートを実行しているユーザーのユーザーID。たとえば: Administrator |
xdo_user_roles |
レポートを実行しているユーザーに割り当てられたロール。たとえば: XMLP_ADMIN、XMLP_SCHEDULER |
xdo_user_report_oracle_lang |
ユーザーのアカウント・プリファレンスに基づくレポート言語。たとえば: ZHS |
xdo_user_report_locale |
ユーザーのアカウント・プリファレンスに基づくレポート・ロケール。たとえば: en-US |
xdo_user_ui_oracle_lang |
ユーザーのアカウント・プリファレンスに基づくユーザー・インタフェース言語。たとえば: US |
xdo_user_ui_locale |
ユーザーのアカウント・プリファレンスに基づくユーザー・インタフェース・ロケール。たとえば: en-US |
Publisherは、オンライン・レポートにシステム変数を移入します。スケジュール済ジョブでは、Publisherは、XDO_USER_REPORT_LOCALE、XDO_USER_UI_LOCALE、XDO_USER_UI_ORACLE_LANG、XDO_USER_REPORT_ORACLE_LANGおよびXDO_USER_REPORT_LOCALEシステム変数を移入しません。
要素としてのユーザー・システム変数の追加
ユーザー情報をデータ・モデルに追加するには、パラメータとして変数を定義して、データ・モデルでパラメータ値を要素として定義します。
また、単にパラメータとして変数を追加して、そのパラメータ値をレポート内で参照できます。
次の問合せがあるとします。
select
:xdo_user_name as USER_ID,
:xdo_user_roles as USER_ROLES,
:xdo_user_report_oracle_lang as REPORT_LANGUAGE,
:xdo_user_report_locale as REPORT_LOCALE,
:xdo_user_ui_oracle_lang as UI_LANGUAGE,
:xdo_user_ui_locale as UI_LOCALE
from dual
次の結果が戻されます。
<?xml version="1.0" encoding="UTF-8"?>
<! - Generated by Publisher - >
<DATA_DS>
<G_1>
<USER_ROLES>XMLP_TEMPLATE_DESIGNER, XMLP_DEVELOPER, XMLP_ANALYZER_EXCEL, XMLP_ADMIN, XMLP_ANALYZER_ONLINE, XMLP_SCHEDULER </USER_ROLES>
<REPORT_LANGUAGE>US</REPORT_LANGUAGE>
<REPORT_LOCALE>en_US</REPORT_LOCALE>
<UI_LANGUAGE>US</UI_LANGUAGE>
<UI_LOCALE>en_US</UI_LOCALE>
<USER_ID>administrator</USER_ID>
</G_1>
</DATA_DS>
サンプル・ユースケース: 返されるデータセットのユーザーIDによる制限
次の例では、返されるデータをユーザーIDで制限しています。
select EMPLOYEES.LAST_NAME as LAST_NAME,
EMPLOYEES.PHONE_NUMBER as PHONE_NUMBER,
EMPLOYEES.HIRE_DATE as HIRE_DATE,
:xdo_user_name as USERID
from HR.EMPLOYEES EMPLOYEES
where lower(EMPLOYEES.LAST_NAME) = :xdo_user_name
lower()関数を使用しているため、xdo_user_nameは必ず小文字の書式になります。PublisherではUSERIDを保持しないため、ユーザー名を使用する必要があり、そのユーザー名を問合せ内で直接使用するか、参照表に問い合せてユーザーIDを検索します。
LDAPユーザー属性値からのバインド変数の作成
LDAPディレクトリに格納されたユーザー属性の値をデータ問合せにバインドするには、Publisherに属性名を定義して必要なバインド変数を作成します。
前提条件
バインド変数の作成に使用できる属性は、管理者が「セキュリティ構成」ページで定義する必要があります。
この属性は、LDAPの「セキュリティ・モデル」定義にある「データ問合せバインド変数の属性名」フィールドで定義します。ユーザーに対して定義された任意の属性を使用できます(たとえば: memberOf、sAMAccountName、primaryGroupID、mail)。
Publisherによるバインド変数の構成方法
LDAPの「セキュリティ・モデル」定義にある「データ問合せバインド変数の属性名」フィールドに入力した属性名は、問合せ内で参照できます。
次に、バインド変数の構築方法を示します:
xdo_<attribute name>
サンプル属性(memberOf、sAMAccountName、primaryGroupID、mail)を入力したと仮定します。これらの属性は、次のバインド変数として問合せ内で使用できます。
xdo_memberof
xdo_SAMACCOUNTNAME
xdo_primaryGroupID
xdo_mail
属性については大文字と小文字が区別されませんが、接頭辞のxdo_は小文字にする必要があります。
これらのバインド変数は、データ・モデル内で次のように使用します。
SELECT
:xdo_user_name AS USER_NAME,
:xdo_user_roles AS USER_ROLES,
:xdo_user_ui_oracle_lang AS USER_UI_LANG,
:xdo_user_report_oracle_lang AS USER_REPORT_LANG,
:xdo_user_ui_locale AS USER_UI_LOCALE,
:xdo_user_report_locale AS USER_REPORT_LOCALE,
:xdo_SAMACCOUNTNAME AS SAMACCOUNTNAME,
:xdo_memberof as MEMBER_OF,
:xdo_primaryGroupID as PRIMARY_GROUP_ID,
:xdo_mail as MAIL
FROM DUAL
LDAPバインド変数は、ログインしているユーザーのLDAPディレクトリに格納された値を返します。