ヘッダーをスキップ
Oracle® Databaseセマンティク・テクノロジ開発者ガイド
11gリリース2 (11.2)
E52974-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

13 SEM_RDFSAパッケージのサブプログラム

SEM_RDFSAパッケージには、仮想プライベート・データベース(VPD)またはOracle Label Security (OLS)を使用してRDFデータへのファイングレイン・アクセス制御を提供するサブプログラム(ファンクションとプロシージャ)が含まれます。この章のサブプログラムを使用するには、第1章「Oracle Databaseセマンティク・テクノロジの概要」第5章「RDFデータのファイングレイン・アクセス制御」に記載されている概念および使用情報について理解しておく必要があります。

この章では、サブプログラムに関するリファレンス情報を示します(サブプログラムのリストはアルファベット順です)。

SEM_RDFSA.ADD_VPD_CONSTRAINT

書式

SEM_RDFSA.ADD_VPD_CONSTRAINT(

     policy_name IN VARCHAR2,

     constr_name IN VARCHAR2,

     match_pattern IN VARCHAR2,

     apply_pattern IN VARCHAR2,

     constr_group IN VARCHAR2 DEFAULT NULL);

説明

VPDポリシーにデータ・アクセス制約を追加します。

パラメータ

policy_name

既存のVPDポリシーの名前。

constr_name

VPDポリシーで定義される制約の大/小文字が区別されない一意の名前。

match_pattern

制約のターゲットを判断する一致パターン。

apply_pattern

アクセス制限を実施する制約の適用パターン。

constr_group

制約が属するグループの大/小文字が区別されない名前。

使用方法

このプロシージャは、VPDポリシーにデータ・アクセス制約を追加します。VPDポリシーの所有者のみが、ポリシーに新しい制約を追加できます。新しく追加された制約はすぐに有効になり、VPDポリシーに関連付けられているすべてのRDFモデルで問合せのために実施されます。

制約グループが、アプリケーション・コンテキスト(5.1.1項を参照)に基づいて実行時に選択的にアクティブ化または非アクティブ化できるように、ポリシーごとに指定される場合があります。制約グループのない制約は、常にアクティブです。このプロシージャに渡される一致および適用パターンの詳細は、5.1.3項を参照してください。

MDSYS.RDFVPD_POLICY_CONSTRAINTSビュー(5.1.6項)も参照してください。

VPDのサポートの詳細は、5.1項を参照してください。

次の例では、RDFクラスContractに対するデータ・アクセス制約をVPDポリシーに追加して、それに制約グループuserを割り当てます。

begin
  sem_rdfsa.add_vpd_constraint(
          policy_name   => 'contracts_policy',
          constr_name   => 'andy_constraint_1',
          match_pattern =>'{?contract  rdf:type
                              <http://www.myorg.com/classes/Contract>}',
          apply_pattern => '{?contract  pred:hasMember      
              "sys_context('sa$appctx','app_user_uri'}"^^orardf:instruction }', 
          constr_group  => 'user');
end;
/

前述の例では、セキュアなアプリケーション・コンテキストを使用して、問合せを発行しているユーザーを識別し、その値を適用パターンにバインディングしてユーザーが特定の契約にアクセスできるようにします。名前空間sa$appctxを持つセキュアなアプリケーション・コンテキストでは、属性app_user_uriの値をログインしているユーザーを識別するURIに初期化することが予測されます。

次の例では、同じVPDポリシーにRDFプロパティhasContractValueに対するデータ・アクセス制約を追加して、それを制約グループvpに割り当てます。

begin
  sem_rdfsa.add_vpd_constraint(
          policy_name   => 'contracts_policy',
          constr_name   => 'vp_access_to_contr_value',
          match_pattern => '{?contract  pred:hasContractValue ?cvalue }',
          apply_pattern => '{?contract  pred:drivenBy         ?dept .
                             ?dept      pred:hasVP
              "sys_context('sa$appctx','app_user_uri'}"^^orardf:instruction }', 
          constr_group  => 'vp');
end;
/

SEM_RDFSA.APPLY_OLS_POLICY

書式

SEM_RDFSA.APPLY_OLS_POLICY(

     policy_name IN VARCHAR2,

     rdfsa_options IN NUMBER DEFAULT SEM_RDFSA.SECURE_SUBJECT,

     table_options IN VARCHAR2 DEFAULT 'ALL_CONTROL',

     label_function IN VARCHAR2 DEFAULT NULL,

     predicate IN VARCHAR2 DEFAULT NULL);

説明

セマンティク・データ・ストアにOLSポリシーを適用します。

パラメータ

policy_name

既存のOLSポリシーの名前。

rdfsa_options

RDFデータで有効にするファイングレイン・アクセス制御のモードを指定するオプション。RDFデータを保護するためのデフォルトのオプションは、トリプルの主語の位置に表示されるリソースに機密性ラベルを割り当てます。rdfsa_optionsパラメータを使用して「使用方法」の表13-1で定義されている定数の1つを指定することで、デフォルトを上書きできます。

table_options

ポリシー実施オプション。デフォルト値(ALL_CONTROL)は、このプロシージャでサポートされる唯一の値です。

label_function

デフォルトとして使用するラベル値を戻すファンクションを起動する文字列。

predicate

ラベルベースの述語と組み合せる追加の述語。

使用方法

このプロシージャで指定されるOLSポリシーは、列名をCTXT1として作成される必要があり、デフォルトのポリシー・オプションを使用する必要があります。ポリシー・オプションの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

このプロシージャは、MDSYSスキーマで定義される複数の表でsa_policy_admin.apply_table_policyプロシージャを起動します。SEM_RDFSA.APPLY_OLS_POLICYプロシージャのパラメータtable_optionslabel_functionおよびpredicateは、sa_policy_admin.apply_table_policyプロシージャにある同じ名前のパラメータと同じセマンティクを持ちます。

rdfsa_optionsパラメータの場合、パッケージ定数を必要なオプションに対して指定できます。表13-1に、これらの定数および説明を示します。

表13-1 rdfsa_optionsパラメータのSEM_RDFSAパッケージ定数

定数 説明

SEM_RDFSA.SECURE_SUBJECT

トリプルの主語の位置に表示されるリソースに機密性ラベルを割り当てます。

SEM_RDFSA.SECURE_PREDICATE

トリプルの述語の位置に表示されるリソースに機密性ラベルを割り当てます。

SEM_RDFSA.SECURE_OBJECT

トリプルの目的語の位置に表示されるリソースに機密性ラベルを割り当てます。

SEM_RDFSA.TRIPLE_LEVEL_ONLY

トリプルレベル・セキュリティを適用します。適切なパフォーマンスを提供し、ラベルを個々のリソースに割り当てる必要をなくします。(My Oracle Supportから入手可能なパッチ9819833がインストールされている必要があります。)

SEM_RDFSA.OPT_DEFINE_BEFORE_USE

機密性ラベルがリソースに定義される前に、トリプルのRDFリソースの使用を制限します。このオプションが指定されない場合、ユーザーの最初の行のラベルは最初の使用でリソースのデフォルトのラベルとして使用されます。

SEM_RDFSA.OPT_RELAX_TRIPLE_LABEL

トリプル・ラベルとそのすべてのコンポーネントに関連付けられているラベル間に存在する優位関係を緩和します。このオプションを使用すると、ユーザーがすべてのトリプル・コンポーネントに対するREADアクセス権を持ち、トリプル・ラベルがコンポーネント・ラベルと関係がない場合にトリプルを定義できます。このオプションを使用しない場合、トリプル・ラベルは、少なくともそのすべてのコンポーネントのラベルを網羅する必要があります。


新しく挿入されたトリプルのカスタム・ラベルを生成するには、label_functionパラメータでファンクションを指定できます。ラベル・ファンクションはMDSYS.RDF_LINK$表に関連付けられ、この表の列は、次の例に示すように、ラベル・ファンクションへのパラメータとして構成される場合があります。

fgac_admin.new_triple_label(:new.model_id,
                            :new.start_node_id,
                            :new.p_value_id,
                            :new.canon_end_node_id)'

OLSポリシーは、異なる構造を持つ複数の表に適用されるため、predicateパラメータに割り当てられる述語の唯一有効な列の参照は、ラベル列CTXT1の参照です。OLSが既存のデータのセマンティク・データ・ストアで有効にされる場合、アクセス制限なしでこのデータの使用を継続できるように、'OR CTXT1 is null'の形式の述語を指定できます。

OLS対応セマンティク・データ・ストアは、複数のモデルで構成されるすべてのRDFトリプルで機密性ラベルを使用します。このようなトリプルへのユーザー・アクセスは、モデル・ビューおよびSEM_MATCH問合せを通して、OLSポリシーによって制限されます。さらに、アプリケーション表を所有しているユーザーとは無関係に、表の(タイプSDO_RDF_TRIPLE_Sの)トリプル列へのアクセスは、OLSポリシーによって完全なアクセス権限を持つユーザーに制限されます。

トリプルは、対応するアプリケーション表に対するINSERT権限を使用して特定のRDFモデルに挿入されます。新しいトリプルの機密性ラベルが、ユーザーのセッション・コンテキスト(最初の行のラベル)またはラベル・ファンクションを使用して生成されます。トリプルは、トリプル・コンポーネントに関連付けられているラベルを使用して、RDFポリシー違反に対して検証されます。トリプル情報にはアプリケーション表からアクセスできない場合がありますが、OLSポリシー制限を適用している間は、トリプルにアクセスするためにモデル・ビューに問い合せることができます。必要なポリシー権限(WRITEUP、WRITEACROSSなど)を持っていれば、モデル・ビューのCTXT1列を更新して、トリプルに割り当てられるラベルをリセットできます。新しいラベルは、トリプル・コンポーネントに関係するRDFポリシー違反に対して自動的に検証されます。モデル・ビューのCTXT1列に対するUPDATE権限はモデルの所有者に付与され、このユーザーはこの権限を他のユーザーに選択的に付与できます。

RDFモデルが完全なアクセス権を持つユーザー以外のスキーマで作成される場合は、モデル・オブジェクトに対する必要な権限(具体的には、アプリケーション表に対する読取り/書込みアクセス権、モデル・ビューへの読取りアクセス権、およびモデル・ビューのCTXT1列への書込みアクセス権)をメンテナンス操作のためにそれらのユーザーに付与できます。これらの操作には、モデルへのバルク・ロード、トリプルに割り当てられるすべての機密性ラベルのリセット、およびモデルを使用した伴意の作成が含まれます。

OLSポリシーを無効にするには、SEM_RDFSA.DISABLE_OLS_POLICYプロシージャを使用します。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、セキュアな主語およびセキュアな述語オプションを使用して、RDFデータへのセキュアなアクセスを有効にします。

begin
  sem_rdfsa.apply_ols_policy(
        policy_name   => 'defense',
        rdfsa_options => sem_rdfsa.SECURE_SUBJECT+
                         sem_rdfsa.SECURE_PREDICATE); 
end;
/

次の例では、(保護されているトリプル・コンポーネント(主語、述語または目的語)が、関連付けられている機密性ラベルで事前定義されている場合にのみユーザーがトリプルを定義できる) Define Before Useオプションを指定することによって、前述の例を拡張します。トリプルを挿入するユーザーがSEM_RDFSAパッケージに対する実行権限を持っていない場合に、この構成は有効です。

begin
  sem_rdfsa.apply_ols_policy(
        policy_name   => 'defense',
        rdfsa_options => sem_rdfsa.SECURE_SUBJECT+
                         sem_rdfsa.SECURE_PREDICATE+
                         sem_rdfsa.OPT_DEFINE_BEFORE_USE); 
end;
/

SEM_RDFSA.APPLY_VPD_POLICY

書式

SEM_RDFSA.APPLY_VPD_POLICY(

     policy_name IN VARCHAR2,

     model_name IN VARCHAR2);

説明

RDFモデルにVPDポリシーを適用します。

パラメータ

policy_name

既存のVPDポリシーの名前。

model_name

VPDポリシーを適用するモデルの名前。

使用方法

このプロシージャは、RDFモデルにVPDポリシーを適用します。VPDポリシーの所有者は、データベース・インスタンスのすべてのモデルにこれを適用できます。所有者は、SYS.DBMS_RLSパッケージに対するEXECUTE権限も持つ必要があります。

ポリシーがRDFモデルに適用された後、モデルに格納されているデータおよびこのモデルから推論されるデータには、SEM_MATCH操作でSPARQL問合せパターンを使用することでのみアクセスできます。データ・アクセスのその他の形式(モデル・ビューを通して、またはSEM_MATCH問合せの従来のグラフ・パターン構文を使用してなど)は使用できません。

VPDポリシーは、仮想モデルに参加しているモデルに適用されない場合があります。同様に、仮想モデルは、VPD対応モデルを含めるように定義されない場合があります。

MDSYS.RDFVPD_POLICIESビュー(5.1.4項)も参照してください。

VPDのサポートの詳細は、5.1項を参照してください。

次の例では、RDFモデルにVPDポリシーを適用します。

begin
  sem_rdfsa.apply_vpd_policy(
      policy_name => 'contracts_policy',
      model_name  => 'contracts');
end;
/

SEM_RDFSA.CREATE_VPD_POLICY

書式

SEM_RDFSA.CREATE_VPD_POLICY(

     policy_name IN VARCHAR2,

     namespace_map IN RDF_ALIASES DEFAULT NULL,

    policy_context IN VARCHAR2 DEFAULT NULL);

説明

ユーザー・スキーマに新しいVPDポリシーを作成します。

パラメータ

policy_name

VPDポリシーの名前。

namespace_map

VPD制約で使用される、名前空間およびその接頭辞のマッピング。

policy_context

VPDポリシーで定義される制約グループを具体的に管理するために作成されたコンテキストの名前。

使用方法

SYS.DBMS_RLSパッケージに対するEXECUTE権限を持つ必要があります。

ポリシーに関連付けられる名前空間マップは、SEM_RDFSA.MAINT_VPD_METADATAプロシージャを使用して追加されるポリシーのメタデータ文、およびSEM_RDFSA.ADD_VPD_CONSTRAINTプロシージャを使用して定義されるポリシーのデータ・アクセス制約で、その後使用される名前空間の接頭辞を定義するために使用される場合があります。

policy_contextパラメータに割り当てられるアプリケーション・コンテキストの名前は、実行時に制約グループを動的に管理するために使用されます。このようなコンテキストは、VPDポリシーと関連付ける前に、CREATE CONTEXTコマンドを使用して作成する必要があります。VPDポリシーで定義される各データ・アクセス制約は、属する制約グループの名前を指定できます。実行時に、制約グループの名前は、グループを選択的にアクティブにするためにpolicy_context値の名前と照合されます(詳細は、5.1.1項を参照してください)。

MDSYS.RDFVPD_POLICIESビュー(5.1.4項)も参照してください。

VPDのサポートの詳細は、5.1項を参照してください。

次の例では、名前空間マップでVPDポリシーを作成し、制約グループを管理するポリシー・コンテキストを関連付けます。

create context contracts_appctx using sec_admin.contracts_appctx;
begin
  sem_rdfsa.create_vpd_policy(
        policy_name  => 'contracts_policy',
        namespace_map => 
          mdsys.rdf_aliases(                                                    
            mdsys.rdf_alias('','http://www.myorg.com/classes/'),                                                     
            mdsys.rdf_alias('pred','http://www.myorg.com/pred/'),
            mdsys.rdf_alias('emp','http://www.myorg.com/employee/')),
        policy_context => 'contracts_appctx');
end;
/

SEM_RDFSA.DELETE_VPD_CONSTRAINT

書式

SEM_RDFSA.DELETE_VPD_CONSTRAINT(

     policy_name IN VARCHAR2,

     constr_name IN VARCHAR2);

説明

VPDポリシーからデータ・アクセス制約を削除します。

パラメータ

policy_name

既存のVPDポリシーの名前。

constr_name

VPDポリシーから削除する制約の大/小文字が区別されない一意の名前。

使用方法

このプロシージャは、VPDポリシーからデータ・アクセス制約を削除します。VPDポリシーの所有者のみが、ポリシーから制約を削除できます。

MDSYS.RDFVPD_POLICY_CONSTRAINTSビュー(5.1.6項)も参照してください。

VPDのサポートの詳細は、5.1項を参照してください。

次の例では、VPDポリシーcontracts_policyから、データ・アクセス制約vp_access_to_contr_valueを追加します。

begin
  sem_rdfsa.delete_vpd_constraint(
      policy_name   => 'contracts_policy',
      constr_name   => 'vp_access_to_contr_value'); 
end;
/

SEM_RDFSA.DISABLE_OLS_POLICY

書式

SEM_RDFSA.DISABLE_OLS_POLICY;

説明

すでにセマンティク・データ・ストアに適用されている、または有効にされているOLSポリシーを無効にします。

パラメータ

(なし。)

使用方法

このプロシージャを使用すると、セマンティク・データ・ストアに適用されている、または有効にされているOLSポリシーを一時的に無効にできます。ポリシーを無効にするユーザーは、OLSポリシーを管理するために必要な権限を持つ必要があり、また、RDFデータに適用されるOLSポリシーにアクセスする必要もあります。

様々なRDFリソースおよびトリプルに割り当てられる機密性ラベルは保持され、OLSポリシーはこれらを実施するために再有効化される場合があります。OLSポリシーが無効である場合、特定のラベルを持つ新しいリソースを追加したり、既存のトリプルおよびリソースのラベルを更新することができます。

OLSポリシーを適用するには、SEM_RDFSA.APPLY_OLS_POLICYプロシージャを使用し、無効になっていたOLSポリシーを有効にするには、SEM_RDFSA.ENABLE_OLS_POLICYプロシージャを使用します。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、セマンティク・データ・ストアのOLSポリシーを無効にします。

begin
  sem_rdfsa.disable_ols_policy;
end;
/

SEM_RDFSA.DROP_VPD_POLICY

書式

SEM_RDFSA.DROP_VPD_POLICY(

     policy_name IN VARCHAR2);

説明

使用していないVPDポリシーを削除します。

パラメータ

policy_name

既存のVPDポリシーの名前。

使用方法

このプロシージャは、使用していないVPDポリシーを、そのメタデータおよび制約とともに永続的に削除します。VPDポリシーの所有者またはこの操作を実行するDBAロールを持つユーザーである必要があります。

VPDのサポートの詳細は、5.1項を参照してください。

次の例では、VPDポリシーcontracts_policyから、データ・アクセス制約vp_access_to_contr_valueを追加します。

begin
  sem_rdfsa.drop_vpd_policy(
      policy_name   => 'contracts_policy',
      constr_name   => 'vp_access_to_contr_value'); 
end;
/

SEM_RDFSA.ENABLE_OLS_POLICY

書式

SEM_RDFSA.ENABLE_OLS_POLICY;

説明

すでに無効にされているOLSポリシーを有効にします。

パラメータ

(なし。)

使用方法

このプロシージャを使用すると、セマンティク・データ・ストアに対して無効にされているOLSポリシーを有効にできます。ポリシーを有効にするユーザーは、OLSポリシーを管理するために必要な権限を持つ必要があり、また、RDFデータに適用されるOLSポリシーにアクセスする必要もあります。

OLSポリシーを無効にするには、SEM_RDFSA.DISABLE_OLS_POLICYプロシージャを使用します。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、セマンティク・データ・ストアのOLSポリシーを有効にします。

begin
  sem_rdfsa.enable_ols_policy;
end;
/

SEM_RDFSA.MAINT_VPD_METADATA

書式

SEM_RDFSA.MAINT_VPD_METADATA(

     policy_name IN VARCHAR2,

     t_subject IN VARCHAR2,

     t_predicate IN VARCHAR2,

     t_object IN VARCHAR2,

     action IN VARCHAR2 DEFAULT 'ADD');

説明

主語、述語および目的語を持つRDFスキーマ文を受け入れることによって、VPDメタデータを保持します。

パラメータ

policy_name

既存のVPDポリシーの名前。

t_subject

メタデータのトリプルの主語。

t_predicate

メタデータのトリプルの述語。

t_object

メタデータのトリプルの目的語。

action

実行されるメンテナンス操作(ADD (メタデータに指定されたトリプルを追加)またはDELETE (メタデータから指定されたトリプルを削除))。

使用方法

このプロシージャは、RDFスキーマ文を受け入れ、そのディクショナリで適切なアクションを実行することによって、VPDポリシーに関連付けられているメタデータを保持します。VPDポリシーの所有者またはVPDポリシーへの完全なアクセス権を持つユーザーのみが、そのメタデータを保持できます。

このプロシージャを使用して追加できるメタデータ文のタイプは、t_predicateパラメータに割り当てられる用語によって決定されます。このパラメータで受け入れられる値は、次のとおりです。

http://www.w3.org/2000/01/rdf-schema#domain
http://www.w3.org/2000/01/rdf-schema#range
http://www.w3.org/2000/01/rdf-schema#subClassOf
http://www.w3.org/2000/01/rdf-schema#subPropertyOf
http://www.w3.org/2002/07/owl#equivalentProperty

MDSYS.RDFVPD_PREDICATE_MDATAおよびMDSYS.RDFVPD_RESOURCE_RELビューは、それぞれ5.1.7項および5.1.8項を参照してください。

VPDのサポートの詳細は、5.1項を参照してください。

次の例では、ProjectのサブクラスとしてContractを指定し、hasContractValueプロパティにドメイン情報を追加します。

begin
  sem_rdfsa.maint_vpd_metadata(
      policy_name => 'contracts_policy',
      t_subject   => '<http://www.myorg.com/classes/Project>',
      t_predicate => '<http://www.w3.org/2000/01/rdf-schema#subClassOf>',
      t_object    => '<http://www.myorg.com/classes/Contract>',
      action      => 'add');
end;
 
begin
  sem_rdfsa.maint_vpd_metadata(
      policy_name => 'contracts_policy',
      t_subject   => '<http://www.myorg.com/property/hasConfValue>',
      t_predicate => 'rdfs:domain',
      t_object    => '<http://www.myorg.com/classes/Contract>');
end;

SEM_RDFSA.REMOVE_OLS_POLICY

書式

SEM_RDFSA.REMOVE_OLS_POLICY;

説明

セマンティク・データ・ストアからOLSポリシーを永続的に削除または分離します。

パラメータ

(なし。)

使用方法

OLSポリシーを管理するために必要な権限を持つ必要があり、また、RDFデータに適用されるOLSポリシーにアクセスする必要もあります。OLSポリシーがセマンティク・データ・ストアから分離されると、すでにトリプルおよびリソースに割り当てられているすべての機密性ラベルが失われます。

この操作は、特にRDFセキュリティ・ポリシーを保持するために作成されるオブジェクトを削除します。

OLSポリシーを適用するには、SEM_RDFSA.APPLY_OLS_POLICYプロシージャを使用します。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、すでにセマンティク・データ・ストアに適用されているOLSポリシーを削除します。

begin
  sem_rdfsa.remove_ols_policy;
end;
/

SEM_RDFSA.REMOVE_VPD_POLICY

書式

SEM_RDFSA.REMOVE_VPD_POLICY(

     policy_name IN VARCHAR2,

     model_name IN VARCHAR2);

説明

RDFモデルからVPDポリシーを削除(分離)します。

パラメータ

policy_name

既存のVPDポリシーの名前。

model_name

VPDポリシーを適用するモデルの名前。

使用方法

このプロシージャは、RDFモデルからVPDポリシーを永続的に削除または分離します。VPDポリシーの所有者またはこの操作を実行するDBAロールを持つユーザーである必要があります。

VPDポリシーが削除された後、特定のモデルのファイングレイン・アクセス制御はオフにされ、モデル・ビューに対するSELECT権限を持つユーザーはモデルのすべてのデータにアクセスできます。

VPDのサポートの詳細は、5.1項を参照してください。

次の例では、RDFモデルからVPDポリシーを削除します。

begin
  sem_rdfsa.remove_vpd_policy(
      policy_name => 'contracts_policy',
      model_name  => 'contracts');
end;
/

SEM_RDFSA.RESET_MODEL_LABELS

書式

SEM_RDFSA.RESET_MODEL_LABELS(

     model_name IN VARCHAR2);

説明

モデルまたはグローバル・リソースに関連付けられているラベルをリセットします(関連付けられている1つ以上のモデルは空である必要があります)。

パラメータ

model_name

ラベルをリセットする必要があるモデルの名前、またはすべてのグローバル・リソースに関連付けられているラベルをリセットするための文字列RDF$GLOBAL

使用方法

モデル名を指定する場合、モデルは空である必要があります。RDF$GLOBALを指定する場合、すべてのモデルは空である必要があります(つまり、RDFリポジトリにトリプルは存在しません)。

セマンティク・データ・ストアに適用されるOLSポリシーに関して完全なアクセス権限を持っている必要があります。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、Contractsモデルに関連付けられているすべてのリソースおよびそのラベルを削除します。

begin
   sem_rdfsa.reset_model_labels(model_name => 'Contracts');
end;
/

SEM_RDFSA.SET_PREDICATE_LABEL

書式

SEM_RDFSA.SET_PREDICATE_LABEL(

     model_name IN VARCHAR2,

     predicate IN VARCHAR2,

     label_string IN VARCHAR2);

説明

モデル・レベルの述語に、またはリポジトリ全体に機密性ラベルを設定します。

パラメータ

model_name

述語が属するモデルの名前、または同じラベルがすべてのモデルの述語の使用に適用される必要がある場合は文字列RDF$GLOBAL

predicate

ラベルが割り当てられる必要がある述語。

label_string

文字列表現のOLS行ラベル。

使用方法

モデル名を指定する場合、この操作を実行するには、モデルへの読取りアクセス権およびSEM_RDFSAパッケージに対する実行権限が必要です。RDF$GLOBALを指定する場合、RDFデータに適用されるOLSポリシーに関して完全なアクセス権限が必要です。

ラベルが述語にすでに存在する場合、既存のラベルを上書きするには指定されたラベルへのアクセス権およびOLSポリシー権限が必要です。SECURE_PREDICATEオプションは、RDFデータに対して有効にする必要があります。

既存の述語ラベルがこの操作で更新される場合、この述語を使用するトリプルのラベルは新しい述語ラベルよりもすべて優位である必要があります。唯一の例外は、OPT_RELAX_TRIPLE_LABELオプションがOLS対応RDFデータで選択されている場合です。

RDF$GLOBALを指定する場合、モデル全体にわたる一意の機密性ラベルを持つグローバル述語が作成されます。同じ述語がすでに1つ以上のモデルで定義されている場合、グローバル・ラベルはそのようなラベルすべてよりも優位であり、モデル固有のラベルは特定の述語用に置き換えられます。

述語のラベルが設定された後、この述語を持つ新しいトリプルは、トリプル・ラベル(ユーザーの最初の行のラベルから、またはラベル・ファンクションを使用して初期化される場合があります)が、述語の機密性ラベルよりも優位である場合にのみ追加できます。この優位関係はOPT_RELAX_TRIPLE_LABELオプションで緩和できますが、その場合には、ユーザーは述語を使用して新しいトリプルを定義できるように述語への読取りアクセス権を少なくとも持っている必要があります。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、Contractsモデルに述語ラベル、およびデータベース・インスタンスのすべてのモデルに別の述語ラベルを設定します。

begin
  sem_rdfsa.set_predicate_label( 
         model_name   => 'contracts',
         predicate    => '<http://www.myorg.com/pred/hasContractValue>',
         label_string => 'TS:US_SPCL');
end;  
/
 
begin
  sem_rdfsa.set_predicate_label(
         model_name   => 'rdf$global',
         predicate    => '<http://www.myorg.com/pred/hasStatus>',
         label_string => 'SE:US_SPCL:US');
end;
/

SEM_RDFSA.SET_RDFS_LABEL

書式

SEM_RDFSA.SET_RDFS_LABEL(

     label_string IN VARCHAR2,

     inf_override IN VARCHAR2);

説明

RDFSスキーマ要素に機密性ラベルを設定します。

パラメータ

label_string

すべてのRDFスキーマ構成要素の機密性ラベルとして使用される、文字列表現のOLS行ラベル。

inf_override

推論されたトリプルのラベルを生成するためのオーバーライドとして使用されるOLS行ラベル。

使用方法

このプロシージャは、RDFスキーマ・リソース(通常、URIのhttp://www.w3.org/1999/02/22-rdf-syntax-ns#およびhttp://www.w3.org/2000/01/rdf-schema#接頭辞によって認識されます)に関連付けられている機密性ラベルを設定またはリセットします。これらのリソースへの制限付きアクセス権を使用して機密性ラベルを割り当てることができるため、新しいRDFクラスの作成や新規プロパティの追加などの操作は、より高い権限を持つユーザーに制限できます。

RDFデータに適用されるポリシーに関して完全なアクセス権限を持っている必要があります。

RDFスキーマ要素は、緩和されたトリプル・ラベル・オプションを暗黙的に使用するため、主語、述語または目的語にRDFSおよびOWLの構成要素を使用するトリプルが、スキーマ構成要素に関連付けられているラベルよりも優位である機密性ラベルを持つことは強制されません。したがって、新しいRDFクラスおよびプロパティを定義できるユーザーは、少なくともスキーマ要素への読取りアクセス権を持っている必要があります。

RDFスキーマ要素が推論されたトリプルで参照される場合、システム定義およびカスタムのラベル・ジェネレータは、推論されたトリプルの適切なラベルを決定する際に、推論オーバーライド・ラベルを検討します。カスタム・ラベル・ジェネレータが使用される場合、RDFスキーマ要素が関係していると、このオーバーライド・ラベルが実際のラベルのかわりに渡されます。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、すべてのRDFスキーマ要素に、一意のコンパートメントを持つラベルを設定します。新しいRDFクラスおよびプロパティを定義できるユーザーは、コンパートメントへの独占的なメンバーシップを持つことが求められます。

begin
  sem_rdfsa.set_rdfs_label( 
         label_string  => 'SE:RDFS:',
         inf_override  => 'SE:US_SPCL:US');
end;  
/

SEM_RDFSA.SET_RESOURCE_LABEL

書式

SEM_RDFSA.SET_RESOURCE_LABEL(

     model_name IN VARCHAR2,

     resource_uri IN VARCHAR2,

     label_string IN VARCHAR2,

     resource_pos IN VARCHAR2 DEFAULT 'S');

説明

トリプルの主語や目的語の位置で使用される場合があるリソースに機密性ラベルを設定します。

パラメータ

model_name

リソースが属するモデルの名前、または同じラベルがすべてのモデルのリソースの使用に適用される必要がある場合は文字列RDF$GLOBAL

resource_uri

1つ以上のトリプルの主語または目的語として使用される場合があるリソースのURI。

label_string

文字列表現のOLS行ラベル。

resource_pos

トリプル内のリソースの位置(SOまたはS,O)。同じリソースに対して、最大2つの別々のラベル(リソースがトリプルの主語の位置で使用される場合に考慮するラベルおよび目的語の位置に表示される場合に考慮するラベル)を指定できます。値SOまたはS,Oは、それぞれ、主語、目的語、または主語および目的語の両方の位置のリソースにラベルを設定します。

使用方法

モデル名を指定する場合、この操作を実行するには、モデルへの読取りアクセス権およびSEM_RDFSAパッケージに対する実行権限が必要です。RDF$GLOBALを指定する場合、RDFデータに適用されるOLSポリシーに関して完全なアクセス権限が必要です。

ラベルが述語にすでに存在する場合、既存のラベルを上書きするには指定されたラベルへのアクセス権およびOLSポリシー権限が必要です。SECURE_PREDICATEオプションは、RDFデータに対して有効にする必要があります。

既存のリソース・ラベルがこの操作で更新される場合、指定された位置でこのリソースを使用するトリプルのラベルは新しいリソース・ラベルよりもすべて優位である必要があります。唯一の例外は、OPT_RELAX_TRIPLE_LABELオプションがOLS対応RDFデータで選択されている場合です。

RDF$GLOBALを指定する場合、モデル全体にわたる一意の機密性ラベルを持つグローバル・リソースが作成されます。同じリソースがすでに1つ以上のモデルの同じトリプルの位置で定義されている場合、グローバル・ラベルはそのようなラベルすべてよりも優位であり、モデル固有のラベルはその位置にある特定のリソース用に置き換えられます。

述語のラベルが設定された後、指定された位置のリソースを使用する新しいトリプルは、トリプル・ラベルがリソースの機密性ラベルよりも優位である場合にのみ追加できます。この優位関係はOPT_RELAX_TRIPLE_LABELオプションで緩和できますが、その場合には、ユーザーはリソースへの読取りアクセス権を少なくとも持っている必要があります。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、複数のリソースにその位置に基づいて機密性ラベルを設定します。

begin
  sem_rdfsa.set_resource_label(
         model_name   => 'contracts',
         resource_uri => '<http://www.myorg.com/contract/projectHLS>',
         label_string => 'SE:US_SPCL:US',
         resource_pos => 'S,O');
end;
/
 
begin
  sem_rdfsa.set_resource_label(
       model_name   => 'rdf$global',
       resource_uri => '<http://www.myorg.com/contract/status/Complete>',
       label_string => 'SE:US_SPCL:US',
       resource_pos => 'O');
end;
/

SEM_RDFSA.SET_RULE_LABEL

書式

SEM_RDFSA.SET_RULE_LABEL(

     rule_base IN VARCHAR2,

     rule_name IN VARCHAR2,

     label_string IN VARCHAR2);

説明

ルールベースに属するルールに機密性ラベルを設定します。

パラメータ

rule_base

既存のRDFルールベースの名前。

rule_name

ルールベースに属するルールの名前。

label_string

文字列表現のOLS行ラベル。

使用方法

ルールに割り当てられる機密性ラベルは、適切なラベル・ジェネレータ・オプションが選択されている場合に、推論されたトリプルにラベルを生成するために使用されます。

ルールベースへのアクセス権を持っている必要があり、また、RDFSルールベースのシステム定義のルールにラベルを割り当てることができるOLSポリシーに関して完全なアクセス権限を持っている必要があります。

ユーザー定義のルールに割り当てられるラベルのサポートはありません。

OLSのサポートの詳細は、5.2項を参照してください。

次の例では、RDFSルールに機密性ラベルを割り当てます。

begin
sem_rdfsa.set_rule_label (rule_base    => 'RDFS',
                          rule_name    => 'RDF-AXIOMS',
                          label_string => 'SE:US_SPCL:');
end;
/