セッション変数の操作
セッション変数について
セッション変数は、初期化ブロックから値を取得します。
ただし、動的リポジトリ変数と異なり、セッション変数の初期化はスケジュールされません。ユーザーがセッションを開始すると、Oracle BIサーバーではセッション変数の新しいインスタンスを作成し、それを初期化します。
リポジトリ変数と異なり、セッション変数のインスタンスはOracle BIサーバー上のアクティブなセッションと同じ数だけあります。セッション変数の各インスタンスは、異なる値で初期化できます。
セッション変数は、主に、データベース表やLDAPサーバーなどの外部ソースに対してユーザーを認証する際に使用されます。ユーザーの認証が成功すると、セッション変数を使用してそのセッションのフィルタおよび権限を設定できます。セッション変数を使用してセキュリティを設定する場合は、Oracle Analytics Serverセキュリティの管理のセッション変数の管理を参照してください。
ノート: Oracle Analyticsでは、データ・ソースの接続資格証明の:userと:passwordの変数はサポートされません。
このセクションには次のトピックが含まれます:
システム・セッション変数について
Oracle BIサーバーおよびOracle BIプレゼンテーション・サービスでは、特定の目的でシステム・セッション変数を使用します。
システム・セッション変数には、他の種類の変数(静的または動的リポジトリ変数やシステム以外のセッション変数など)に使用できない予約名が付けられています。
Oracle BIプレゼンテーション・サービスでこれらの変数を使用する場合、名前の前にNQ_SESSION
を付けます。たとえば、列を変数LOGLEVEL
の値でフィルタするには、フィルタを変数NQ_SESSION.LOGLEVEL
に設定します。
この表は、使用可能なシステム・セッション変数を示しています。
変数 | 説明 |
---|---|
USER |
ユーザーが入力した値を保持します。 |
USERGUID |
ユーザーの一意のグローバル識別子(GUID)が格納され、ユーザーのLDAPプロファイルまたは他のプロファイルから移入されます。 |
GROUP |
ユーザーが属するグループが格納されます。レガシー・グループは、自動的にアプリケーション・ロールにマップされます。 ユーザーが複数のグループに属している場合、グループ名をセミコロンで区切って同じ列に含めます(例: GroupA;GroupB;GroupC)。セミコロンをグループ名の一部として使用する必要がある場合は、セミコロンの前に円記号(\)を付けてください。 |
ROLES |
ユーザーが属するアプリケーション・ロールが格納されます。 ユーザーが複数のロールに属している場合、ロール名をセミコロンで区切って同じ列に含めます(例: RoleA;RoleB;RoleC)。セミコロンをロール名の一部として含める必要がある場合は、セミコロンの前に円記号(\)を付けてください。 |
ROLEGUIDS |
ユーザーが属するアプリケーション・ロールの一意のグローバル識別子(GUID)が格納されます。アプリケーション・ロールのGUIDは、アプリケーション・ロール名と同じです。 |
PERMISSIONS |
oracle.bi.server.manageRepositoriesなど、ユーザーが保持する権限が格納されます。 |
PROXY |
他のユーザーとしてふるまうことが認可されているプロキシ・ユーザーの名前が保持されます。 PROXYシステム・セッション変数の詳細は、Oracle Analytics Serverセキュリティの管理を参照してください。 |
DISPLAYNAME |
Oracle BIサーバーで使用されます。ここには、Oracle BIプレゼンテーション・サービス・ユーザー・インタフェースの挨拶でユーザーに表示される名前が格納されます。また、カタログ・オブジェクトの作成者フィールドとしても保存されます。LDAPプロファイルまたは他のユーザー・プロファイルから移入された |
LOGLEVEL |
|
DESCRIPTION |
ユーザーの説明が格納され、LDAPプロファイルまたは他のユーザー・プロファイルから移入されます。 |
USERLOCALE |
ユーザーのロケールが格納され、LDAPプロファイルまたは他のユーザー・プロファイルから移入されます。 |
DISABLE_CACHE_HIT |
Oracle BIサーバー結果キャッシュ・ヒットの有効化または無効化に使用されます。この変数の有効値は0または1です。 |
DISABLE_CACHE_SEED |
Oracle BIサーバー結果キャッシュ・シードの有効化または無効化に使用されます。この変数の有効値は0または1です。 |
DISABLE_SUBREQUEST_CACHE |
Oracle BIサーバー・サブリクエスト・キャッシュ・ヒットおよびシードの有効化または無効化に使用されます。この変数の有効値は0または1です。 |
SELECT_PHYSICAL |
問合せを |
DISABLE_PLAN_CACHE_HIT |
Oracle BIサーバー計画キャッシュ・ヒットの有効化または無効化に使用されます。この変数の有効値は0または1です。 |
DISABLE_PLAN_CACHE_SEED |
Oracle BIサーバー計画キャッシュ・シードの有効化または無効化に使用されます。この変数の有効値は0または1です。 |
TIMEZONE |
ユーザーのタイム・ゾーンが格納され、LDAPプロファイルまたは他のユーザー・プロファイルから移入されます。 |
WEBLANGUAGE |
Oracle BIプレゼンテーション・サービスで使用されます。ユーザー・インタフェース表示言語を保持します。ユーザーは、Oracle Analytics Serverのサインイン・ページで言語を選択できます。または、サインインした後に、「マイ・アカウント」ダイアログの「プリファレンス」タブで言語設定を変更できます。 |
AUTHINITBLOCKONLY |
認証に必要な初期化ブロックが実行されるかどうかを判別します。この変数の値は「はい」です。この値には大/小文字区別はありません。 |
PORTALPATH |
Oracle BIサーバーで使用されます。これは、ユーザーがログインしたときに表示されるデフォルトのダッシュボードを特定します(ユーザーはOracle Analytics Serverにサインインした後、このプリファレンスを上書きできます)。 |
REQUESTKEY |
Oracle BIプレゼンテーション・サービスで使用されます。同じリクエスト・キー(ブランク以外)を持つユーザーは、同じキャッシュ・エントリを共有します。これによってOracle BIプレゼンテーション・サービスは、これらのユーザーが同一のコンテンツ・フィルタおよびセキュリティを持つことを認識します。キャッシュ・エントリを共有すると、Oracle BIプレゼンテーション・サービスとの間に発生する不要な通信を最小化できます。 |
SKIN |
Oracle BIプレゼンテーション・サービス・ユーザー・インタフェースのルック・アンド・フィールの特定の要素を決定します。ユーザーは、ログオンしたときにスタイルを選択して、ユーザー・インタフェースの一部の要素を変更できます。 |
セッション変数の作成
次のステップを使用して、セッション変数を作成します。
すべての変数に一意の名前を作成します。システム・セッション変数の名前は予約されています。システム・セッション変数の名前を他の変数の型で使用することはできません。
「ユーザーによる値の設定を有効にします」オプションを使用すると、管理者以外のユーザーがサンプル用に変数を設定できるようになります。
NQSSetSessionValues()
ストアド・プロシージャは、「Oracle BIプレゼンテーション・サービス管理」の「SQLの発行」ページから使用することはできません。変数の値を設定するには、「ユーザーによる値の設定を有効にします」オプションを選択する必要があります。
「セキュリティ・センシティブ」が選択されている場合、Oracle BIサーバーは論理リクエスト・プロジェクトション・リストで参照されるそれぞれの列または表の親データベース・オブジェクトを参照します。データベース・オブジェクトの「仮想プライベート・データベース」オプションが選択されていると、Oracle BIサーバーはセキュリティ・センシティブ変数のリストと見込みのキャッシュ・ヒットをマッチングします。キャッシュ・ヒットは、すべてのセキュリティ・センシティブ変数が含まれて一致しているキャッシュ・エントリでのみ発生します。
セッション変数を作成して階層列の選択ステップをオーバーライドする場合、初期化文字列がJSON構文で書かれている初期化ブロックを選択する必要があります。選択ステップをオーバーライドする変数で使用される初期化文字列および初期化ブロックの作成参照してください。
式の設定を参照してください。
- 管理ツールで、「管理」を選択してから、「変数」を選択します。
- 「変数マネージャ」ダイアログで、「アクション」メニューから「新規」、「セッション」を選択し、次に「変数」を選択します。
- 「セッション変数」ダイアログで、「名前」に変数名を入力します。
- オプション: 「ユーザーによる値の設定を有効にする」を選択すると、ODBCストアド・プロシージャ
NQSSetSessionValue()
をコールすることで(ユーザー・ログイン時に)初期化ブロックに値が移入された後にセッション変数が設定されます。 - オプション: 「セキュリティ・センシティブ」を選択すると、仮想プライベート・データベース(VPD)などの行レベル・データベース・セキュリティ戦略を使用する際に、その変数をセキュリティ・センシティブと識別できます。
- 「初期化ブロック」リストから、継続的に値のリフレッシュに使用する初期化ブロックを選択するか、「新規」をクリックして新しい初期化ブロックを作成します。
- 「デフォルトのイニシャライザ」で値を入力するか、「式ビルダー」ボタンをクリックして式ビルダーを使用します。
- 「OK」をクリックします。