プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド
12c (12.2.1.1.0)
E77222-02
目次へ移動
目次

前
前へ
次
次へ

システム変数に格納されたユーザー情報をレポート・データに含める方法

BI 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


ユーザー・システム変数を要素として追加する方法

ユーザー情報をデータ・モデルに追加するには、パラメータとして変数を定義して、データ・モデルでパラメータ値を要素として定義します。

また、単にパラメータとして変数を追加して、そのパラメータ値をレポート内で参照できます。

次の問合せがあるとします。

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 Oracle BI 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は必ず小文字の書式になります。BI PublisherはUSERIDを保持しないため、ユーザー名を使用する必要があります。このユーザー名を問合せ内で直接使用するか、参照表に問い合せてユーザーIDを検索します。

LDAPユーザー属性値からのバインド変数の作成

LDAPディレクトリに格納されたユーザー属性の値をデータ問合せにバインドするには、BI Publisherに属性名を定義して、必要なバインド変数を作成します。

前提条件

バインド変数の作成に使用できる属性は、管理者が「セキュリティ構成」ページで定義する必要があります。

この属性は、LDAPの「セキュリティ・モデル」定義にある「データ問合せバインド変数の属性名」フィールドで定義します。このフィールドの詳細は、Oracle Business Intelligence Publisher管理者ガイドのLDAPプロバイダを認証および認可に使用するためのBI Publisherの構成を参照してください。ユーザーに対して定義された任意の属性を使用できます(例: memberOf、sAMAccountName、primaryGroupID、mail)。

BI 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ディレクトリに格納された値を返します。