16 SEM_OLSパッケージのサブプログラム

SEM_OLSパッケージには、Oracle Label Security (OLS)を使用した、RDFデータに対するトリプルレベル・セキュリティに関連するサブプログラム(関数とプロシージャ)が含まれます。

この章のサブプログラムを使用するには、RDFセマンティク・グラフの概要RDFデータのファイングレイン・アクセス制御に記載されている概念および使用情報について理解しておく必要があります。

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

16.1 SEM_OLS.APPLY_POLICY_TO_APP_TAB

書式

SEM_OLS.APPLY_POLICY_TO_APP_TAB(
     policy_name   IN VARCHAR2, 
     schema_name   IN VARCHAR2, 
     table_name    IN VARCHAR2, 
     predicate     IN VARCHAR2 DEFAULT NULL);

説明

MDSYS所有ネットワークのアプリケーション表にOLSポリシーを適用します。

パラメータ

policy_name

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

schema_name

アプリケーション表を含むスキーマの名前。

table_name

アプリケーション表の名前。

predicate

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

使用上のノート

トリプルレベル・セキュリティを使用する場合、ネットワークの各セマンティク・モデルにはOLSが適用されます。つまり、関連する内部表とすべてのアプリケーション表にラベル・セキュリティが適用されるため、既存のセマンティク・モデルのアプリケーション表に手動でポリシーを適用する必要はありません。ただし、OLSポリシーの適用後に追加のモデルを作成する必要がある場合、モデルを作成する前に、SEM_OLS.APPLY_POLICY_TO_APP_TABプロシージャを使用してアプリケーション表にOLSを適用する必要があります。

このプロシージャを実行するには、SA_POLICY_ADMINパッケージのEXECUTE権限およびpolicy_DBAロールを持っている必要があります。

このプロシージャを実行する前に、rdfsa_optionsパラメータにSEM_RDFSA.TRIPLE_LEVEL_ONLYを指定するSEM_RDFSA.APPLY_OLS_POLICYプロシージャを実行しておく必要があります。

アプリケーション表からOLSポリシーを削除するには、SEM_OLS.REMOVE_POLICY_FROM_APP_TABプロシージャを使用します。

OLSのサポートの詳細は、RDFデータのファイングレイン・アクセス制御を参照してください。

このプロシージャは、スキーマプライベート・ネットワークではなく、MDSYS所有ネットワークにのみ適用されます。セマンティク・ネットワークのタイプおよびオプションの詳細は、「セマンティク・ネットワーク」を参照してください。

次の例では、MY_SCHEMA.MY_APP_TABLEアプリケーション表にOLSポリシーdefenseを適用します。

begin
  sem_ols.apply_policy_to_app_table(
        policy_name => 'defense',
        schema_name => 'my_schema',
        table_name  => 'my_app_table');
end;
/

16.2 SEM_OLS.REMOVE_POLICY_FROM_APP_TAB

書式

SEM_OLS.REMOVE_POLICY_FROM_APP_TAB(
     policy_name   IN VARCHAR2, 
     schema_name   IN VARCHAR2, 
     table_name    IN VARCHAR2,
     check_model   IN BOOLEAN DEFAULT TRUE);

説明

MDSYS所有ネットワークのアプリケーション表からOLSポリシーを永続的に削除または分離します。

パラメータ

policy_name

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

schema_name

アプリケーション表を含むスキーマの名前。

table_name

アプリケーション表の名前。

check_model

TRUE (デフォルト)に設定すると、アプリケーション表に関連付けられているモデルが存在するかどうかをチェックします(モデルが存在する場合は例外を生成します)。FALSEに設定すると、モデルが存在するかどうかをチェックせずに操作を実行します。

使用上のノート

セマンティク・モデルをすでに削除していて、アプリケーション表を保護する必要がなくなった場合、このプロシージャを使用できます。

このプロシージャを実行するには、SA_POLICY_ADMINパッケージのEXECUTE権限およびpolicy_DBAロールを持っている必要があります。

このプロシージャを実行する前に、rdfsa_optionsパラメータにSEM_RDFSA.TRIPLE_LEVEL_ONLYを指定するSEM_RDFSA.APPLY_OLS_POLICYプロシージャを実行しておく必要があります。

check_modelTRUE (デフォルト)に設定すると、関連付けられているモデルが存在する場合は例外が生成されます。この場合、このプロシージャを実行するには、最初にモデルを削除する必要があります。

OLSのサポートの詳細は、RDFデータのファイングレイン・アクセス制御を参照してください。

このプロシージャは、スキーマプライベート・ネットワークではなく、MDSYS所有ネットワークにのみ適用されます。セマンティク・ネットワークのタイプおよびオプションの詳細は、「セマンティク・ネットワーク」を参照してください。

次の例では、MY_SCHEMA.MY_APP_TABLEアプリケーション表からOLSポリシーdefenseを削除します。

begin
  sem_ols.remove_policy_from_app_table(
        policy_name => 'defense',
        schema_name => 'my_schema',
        table_name  => 'my_app_table');
end;
/