ヘッダーをスキップ
Oracle® Label Security管理者ガイド
11gリリース2 (11.2)
E92085-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

C Oracle RAC環境でのOracle Label Security

この付録では、Oracle Real Application Clusters (RAC)環境におけるOracle Label Securityの使用について説明します。この付録の内容は、次のとおりです。

C.1 Oracle RAC環境におけるOracle Label Securityのポリシー機能の使用

Oracle RACでは、あるインスタンス上で行われたポリシー変更が、他のインスタンスで即時に使用可能になります。変更内容を使用するために他方のインスタンスを再起動する必要はありません。

あるデータベース・インスタンス上で行われた重要な変更は、自動的に他のインスタンスに伝播します。その一例が、新規ポリシーの作成です。また、ポリシー・オプションの変更も同様です。

このような変更の伝播により、次の2つの貴重な保護が保証されます。

  • 表の全ユーザーには、同じポリシーが適用されます。

  • いずれかのインスタンスが失敗すると、他のインスタンスによる処理の継続には、失敗直前に有効だったのと同じポリシーおよびパラメータが使用されます。そのため、ポリシーが有効化または無効化されていた場合、それがすべてのインスタンスでそのまま表示されます。

管理者が、あるインスタンスで表C-1に示すポリシー・ファンクションを使用してポリシー情報を変更すると、Oracle Label Securityでは、そのファンクション・コールで変更された内容の関連情報が格納されます。新規の情報はOracle RACの他のアクティブなインスタンスで即時に使用可能になり、影響を受けるポリシーのユーザー間で均一に使用可能になります。

表C-1 Oracle RAC環境でステータスを保持するポリシー・ファンクション

ポリシー・ファンクション コメント

sa_sysdba.create_policy()

新規ポリシーの作成

sa_sysdba.drop_policy()

既存のポリシーの削除

sa_sysdba.enable_policy()

既存のポリシーの有効化

sa_sysdba.disable_policy()

既存のポリシーの無効化

sa_sysdba.alter_policy()

既存のポリシーの変更


C.2 Oracle Label Securityでの透過的アプリケーション・フェイルオーバーの使用

セッション情報は、透過的アプリケーション・フェイルオーバー時に保持されます。表C-2に示すセッション・ファンクションを使用してセッションの情報を変更すると、その内容は透過的アプリケーション・フェイルオーバー時に保持されます。

たとえば、ユーザーScottがデフォルトのラベルTop Secretを使用してログオンするとします。このユーザーがsa_session.set_label()をコールしてセッション・ラベルをSecretに変更した場合、他のインスタンスへのフェイルオーバーが発生すると、変更は表示されませんが、セッション・ラベルはSecretのままになっています。

現行のユーザー・セッション情報を保持することにより、そのユーザーが表示または操作できるデータに対するアクセス権限および制限は変更されずに残ります。フェイルオーバーが発生しても、ユーザーが表示および操作できるのは、フェイルオーバー前にアクセス可能だった表および行のみです。保持されていない場合は、他のインスタンスにフェイルオーバーすると、ユーザーに異なるデータ・セットが表示されたり、この種のデータを表示できるようになる可能性があります。

表C-2に示すセッション・ファンクションの1つを使用すると、Oracle Label Securityではそのファンクション・コールによる変更内容の関連情報が格納されます。

表C-2 Oracle RAC環境でステータスを保持するセッション・ファンクション

セッション・ファンクション コメント

sa_session.set_label()

ユーザーは、読取りアクセス権を持つ新規レベル、新規区分およびグループを設定できます。

sa_session.set_row_label()

ユーザーは新規の行に適用するデフォルトの行ラベルを設定できます。

sa_session.save_default_labels()

ユーザーは、現行のセッション・ラベルと行ラベルを将来のセッションのデフォルトとして格納できます。

sa_session.restore_default_labels()

ユーザーは、現行のセッション・ラベルと行ラベルを、格納されているデフォルト設定にリセットできます。

sa_session.set_access_profile()

データベース・セッションのOracle Label Securityでの認可と権限を、指定したユーザーの認証と権限に設定します。