5 Oracle Label Securityポリシーの作成

Oracle Label Securityポリシーは、Oracle Label Securityを実装する名前付きのコマンド・セットです。

5.1 Oracle Label Securityポリシーの作成について

Oracle Label Securityポリシーにより、ラベルに基づいてデータへのユーザー・アクセスが強制されます。

  1. ポリシー名、Oracle Label Securityが保護対象の表に追加する列の名前、この列を非表示にするかどうか、ポリシーを有効にするかどうか、およびポリシーのデフォルトの強制オプションを定義するポリシー・コンテナを作成します。

    詳細は、「ステップ1: ラベル・セキュリティ・ポリシー・コンテナの作成」を参照してください。

  2. ラベルの機密性レベルのコンポーネントを定義します。また、オプションで区分とグループのコンポーネントを定義して、ラベルの機密性をさらにフィルタします。コンポーネントを定義した後で、ラベル自体を作成し、これらのコンポーネントをラベルに関連付けます。

    「ステップ2: ラベル・セキュリティ・ポリシーのラベルの作成」を参照してください。

  3. ポリシーに対してユーザーを認可します。

    詳細は、「ステップ3: ラベル・セキュリティ・ポリシーのユーザーの認可」を参照してください。

  4. これらのユーザーまたはトラステッド・プログラム・ユニットに権限を付与します。

    詳細は、「ステップ4: ユーザーおよびトラステッド・ストアド・プログラム・ユニットへの権限の付与」を参照してください。

  5. ポリシーをデータベース表に適用します。または、スキーマ全体にポリシーを適用できます。

    詳細は、「ステップ5: データベース表またはスキーマへのポリシーの適用」を参照してください。

  6. ポリシー・ラベルを表の行に追加します。ポリシーに使用される表を更新する必要があります。

    詳細は、「ステップ6: 表の行へのポリシー・データ・ラベルの追加」を参照してください。

  7. オプションで、ユーザーの監査設定を構成します。

    詳細は、「ステップ7: 監査の構成(オプション)」を参照してください。

5.2 Oracle Label Securityのポリシーを管理するための権限

ユーザーがOracle Label Securityのポリシー・コンテナを作成すると、Oracle Label Securityによって、ポリシー_DBAの形式の名前でポリシーに固有の管理ロールが、このユーザーに作成されて付与されます。

たとえば、emp_ols_polというポリシーの場合、ロール名はEMP_OLS_POL_DBAです。このロールは、新規のユーザー・セッションの開始後に有効になります。

このユーザーがポリシーを管理できるようにするために、Oracle Label Securityで、次の確認が次の順序で実行されます:

  1. ユーザーにポリシー_DBAロールが付与されているかどうかを確認します。
  2. このユーザーに対してポリシー_DBAが有効になっているかどうかを確認します。
  3. コール・スタックがネストされている場合は、最上位定義者の権限プロシージャ所有者にポリシー_DBAロールが付与されているかどうかを確認します。
  4. ポリシー_DBAロールがLBACSYSユーザー(現在のユーザー)に付与されているかどうかを確認します。

5.3 ステップ1: ラベル・セキュリティ・ポリシー・コンテナの作成

Oracle Label Securityポリシー・コンテナは、ポリシー設定の格納場所です。

5.3.1 ラベル・セキュリティ・ポリシー・コンテナについて

Oracle Label Securityポリシー・コンテナには、ポリシーの動作を記述するメタデータが格納されます。

このコンテナは、ポリシー名、Oracle Label Securityが保護対象の表に追加する列の名前、この列を非表示にするかどうか、およびポリシーのデフォルトの強制オプションを定義します。

保護する表に追加する列には、特定の列または他の属性の値に基づいて表の特定の行に割り当てられたデータ・ラベル(後で作成)が含まれます。

Oracle Enterprise Manager Cloud Controlにポリシー・コンテナを作成するか、SA_SYSDBA.CREATE_POLICYプロシージャを使用できます。

5.3.2 ラベル・ポリシー・コンテナの作成

SA_SYSDBA.CREATE_POLICYプロシージャを使用して、Oracle Label Securityポリシー・コンテナを作成できます。

  • ポリシーを作成するには、ポリシー名、列名およびデフォルト・オプションを指定してSA_SYSDBA.CREATE_POLICYを実行します。

たとえば:

BEGIN
 SA_SYSDBA.CREATE_POLICY (
  policy_name      => 'emp_ols_pol',
  column_name      => 'ols_col',
  default_options  => 'read_control, update_control');
END;
/

関連トピック

5.4 ステップ2: ラベル・セキュリティ・ポリシーのラベルの作成

ポリシー・コンテナを作成した後は、保護された表の各行で使用するデータ・ラベルを作成できます。

5.4.1 ラベルについて

ラベルは、データ・レコードまたはユーザーに関連付けられた機密性を示します。

各ラベルは、ユーザー・アクセスに使用するフィルタのタイプを制御する複数のコンポーネントを持つ単一の属性です。

表5-1に、ラベルの様々なコンポーネントについて説明します。

表5-1 ラベル・コンポーネント

コンポーネント 説明

レベル

必須 - レベルは最低1つ定義する必要があります

機密性を示す名前の順序付きランク。

CONFIDENTIAL (1)、SENSITIVE (2)、HIGHLY_SENSITIVE (3)

区分

機密性レベルに対するより詳細なレベルを表すために使用され、プロジェクトやその他の機密性トピックを表すことができます。

0個以上の区分をラベルに関連付けることができます。

FINANCIALSTRATEGICNUCLEAR

グループ

組織、リージョンまたはその他の属性を表します。

0個以上のグループをラベルに関連付けることができます。

EASTERN_REGIONWESTERN_REGION

すべてのラベルにはレベル・コンポーネントを含める必要がありますが、区分コンポーネントとグループ・コンポーネントはオプションです。区分とグループは、ユーザーがデータに対して持つアクセス権を微調整する方法です。すべてのラベル・コンポーネント指定に有効な文字には、英数字、アンダースコアおよび空白も含まれます。(先頭および後続の空白は無視されます。)データ・ラベルを作成する前に、ラベル・コンポーネントを定義する必要があります。

Enterprise Manager Cloud Controlを使用して、既存のポリシーのラベルとそのコンポーネントを作成できます。また、SA_COMPONENTS PL/SQLパッケージを使用してラベル・コンポーネントを作成し、SA_LABEL_ADMINパッケージを使用してデータ・ラベルを作成できます。

5.4.2 ポリシー・レベルの機密性コンポーネントについて

レベルは、ラベルを付ける情報の機密性を示すランキングです。

情報の機密性が高いほど、レベルも高くなります。情報の機密性が低いほど、レベルも低くなります。

ラベルには必ず1つのレベルを含める必要があります。Oracle Label Securityでは、1つのポリシーに最大10,000のレベルを定義できます。レベルごとに、数値書式、詳細名および必須の簡易名を定義する必要があります。

表5-2にレベルの例を示します。

表5-2 ポリシー・レベルの例

数値 詳細名 短縮名

40

HIGHLY_SENSITIVE

HS

30

SENSITIVE

S

20

CONFIDENTIAL

C

10

PUBLIC

P

表5-2に、レベルの数値書式、詳細名および簡易名を説明します。

表5-3 レベル指定の書式

書式 説明

数値(タグとも呼ばれる)

数値のレベルは0から9999です。機密性はこの数値でランキングされるため、機密性の高いレベルほど大きい数値、機密性の低いレベルほど小さい数値を割り当てる必要があります。表5-2では、40 (HIGHLY_SENSITIVE)は30、20および10より上位レベルです。

管理者は、レベルの数値に連番を使用しないようにします。良い戦略は、レベル間の数値を配置することです(10、20、30...、100、200、300...など)。これにより、既存の2つのレベル間に後からレベルを追加挿入できます。

詳細名

レベルの詳細名は80文字以内です。

短縮名

短縮名は30文字以内です。

レベル(およびその他の各ラベル・コンポーネント)に詳細名と短縮名の両方を定義しますが、検索時に表示されるのは短縮名のみです。ユーザーがラベルを操作する際は、コンポーネントの短縮名のみが使用されます。

レベルの例は、TOP_SECRETSECRETCONFIDENTIALUNCLASSIFIED、またはTRADE_SECRETPROPRIETARYCOMPANY_CONFIDENTIALPUBLIC_DOMAINなどの名前です。

レベルのみを使用する場合、この例のレベル40のユーザーであれば、レベル40以下のすべてのデータ行に対して、アクセスまたは変更ができます。

5.4.3 ポリシー・レベル・コンポーネントの作成

SA_COMPONENTS.CREATE_LEVELプロシージャは、ポリシー・レベル・コンポーネントを作成します。

  • ポリシー・レベル・コンポーネントを作成するには、ポリシー名とコンポーネントの詳細を指定してSA_COMPONENTS.CREATE_LEVELを実行します。
    たとえば:
    BEGIN
     SA_COMPONENTS.CREATE_LEVEL (
       policy_name   => 'emp_ols_pol',
       level_num     => 40,
       short_name    => 'HS',
       long_name     => 'HIGHLY_SENSITIVE');
    END;
    /

関連トピック

5.4.4 ポリシー区分コンポーネントについて

コンパートメントは、ラベルが割り当てられたデータの機密性を表す領域を識別し、レベル内のより詳細なレベルを表します。

特定のプロジェクトに関連するすべてのデータに、同じ区分をラベル付けすることができます。たとえば、区分FINCLおよびCHEMへのアクセス権を持つレベルHSのユーザーは、OP区分を含むデータへのアクセスを許可されません。

表5-4に、区分セットの例を示します。

表5-4 ポリシー区分の例

数値 詳細名 短縮名

85

FINANCIAL

FINCL

65

CHEMICAL

CHEM

45

OPERATIONAL

OP

表5-5に、区分を指定する様々な方法を示します。

表5-5 区分指定の書式

書式 説明

数値

数値の範囲は0から9999です。レベルに使用されている数値とは無関係です。区分の数値は、機密性のレベルを示すわけではありません。区分の数値は、ラベル文字列での区分短縮名の表示順序を制御します。たとえば、表5-4に示した3つの区分すべてとレベルSENSITIVEを持つラベルを作成するとします。このラベルを文字列で表示すると、次のようになります。

S:OP,CHEM,FINCL

これは、SENSITIVE: OPERATIONAL, CHEMICAL, FINANCIALを意味します。

表示順序は、区分に割り当てられた数値の順序に従います。45は65より小さく、65は85より小さい数値です。対照的に、FINCL区分に割り当てられた数値が5の場合、ラベルの文字列書式は次のようになります。

S:FINCL,OP,CHEM

詳細名

区分の詳細名は80文字以内です。

短縮名

短縮名は30文字以内です。

区分はオプションです。ラベルには最大10,000区分を含めることができます。

区分を含まないラベルがあってもかまいません。たとえば、HIGHLY_SENSITIVEおよびCONFIDENTIALレベルは区分なしで指定し、SENSITIVEレベルは区分を含むように指定できます。

データの機密性を分析すると、一部の区分が特定のレベルでのみ有用であることがわかる場合があります。

次の図では、区分を使用するとどのようにデータを分類できるかを示します。

図5-1 ラベル内の区分

図5-1の説明が続きます
「図5-1 ラベル内の区分」の説明

この図では、区分FINCLCHEMおよびOPがレベルHIGHLY_SENSITIVE (HS)とともに使用されています。ラベルHIGHLY_SENSITIVE:FINCL, CHEMは、2つの名前付き区分を持つレベル40を示します。区分FINCLCHEMの機密性は同じです。保護されている表の一部のデータがどの区分にも属さない場合もあることに注意してください。

区分を指定した場合、行データへのアクセスが通常は許可されるレベルのユーザーであっても、行ラベルで表示されるすべての区分もユーザーのラベルに含まれていないかぎりアクセスは禁止されます。たとえば、HSレベルへのアクセス権を付与されるユーザーhprestonには、FINCLおよびCHEMへのアクセス権のみ付与され、OPへのアクセス権は付与されません。

5.4.5 ポリシー区分コンポーネントの作成

SA_COMPONENTS.CREATE_COMPARTMENTプロシージャは、Oracle Label Security区分を作成します。

  • 区分を作成するには、ポリシー名と区分の詳細を指定して、区分を作成するためのSA_COMPONENTS.CREATE_COMPARTMENTプロシージャを実行します。
    BEGIN
      SA_COMPONENTS.CREATE_COMPARTMENT (
       policy_name     => 'emp_ols_pol',
       comp_num        => '85',
       short_name      => 'FINCL',
       long_name       => 'FINANCIAL');
    END;
    /

5.4.6 ポリシー・グループ・コンポーネントについて

グループは、データへのアクセスが許可されている組織、リージョンまたはその他の編成構造(EASTERN_REGIONWESTERN_REGIONWR_SALESなど)を識別できます。

特定の部門に関連するすべてのデータのラベルには、その部門のグループ名を指定できます。グループは、データを制御された方法で配布したり、組織の変更に適切なタイミングで対処する場合に役立ちます。会社組織の再編時には、データ・アクセス権も再編成に沿って適切に変更できます。

グループは階層化できます。組織のインフラストラクチャに基づいてデータにラベルを付けることができます。つまり、グループを親グループに対応付けることができます。

図5-2は、次のような組織階層に対応するグループ・セットを定義する方法を示しています。

WESTERN_REGIONグループには、3つのサブグループWR_SALESWR_HUMAN_RESOURCESおよびWR_FINANCEが含まれています。WR_FINANCEサブグループは、WR_ACCOUNTS_RECEIVABLEおよびWR_ACCOUNTS_PAYABLEに分割されています。

表5-6に、この例の組織構造をOracle Label Securityのグループの書式で表す方法を示します。グループに割り当てられた数値書式は表示順序のみに影響します。階層(つまり、親子関係)を別々に指定します。最初にリストされるグループWESTERN_REGIONは、表の残りのグループの親グループです。

表5-6 グループの例

数値 詳細名 短縮名 親グループ

1000

WESTERN_REGION

WR

1100

WR_SALES

WR_SAL

WR

1200

WR_HUMAN_RESOURCES

WR_HR

WR

1300

WR_FINANCE

WR_FIN

WR

1310

WR_ACCOUNTS_PAYABLE

WR_AP

WR_FIN

1320

WR_ACCOUNTS_RECEIVABLE

WR_AR

WR_FIN

表5-7に、グループを指定する際に使用する必要のある書式を示します。

表5-7 グループ指定の書式

書式 説明

数値

グループの数値の範囲は0から9999で、ポリシーごとに一意である必要があります。

数値は、ランキングを示すわけではありません。また、親子関係も機密性レベルも示しません。単に、ラベル文字列でのグループの短縮名の表示順序を制御します。

たとえば、表5-6にリストしたようにレベルSENSITIVE、区分CHEMICAL、グループWESTERN_REGIONおよびWR_HUMAN_RESOURCESを持つラベルが作成されているとします。このラベルを文字列で表示すると、次のようになります。

S:CHEM:WR,WR_HR

1000は1200より前に位置するため、WRWR_HRより前に表示されます。

詳細名

グループの詳細名は80文字以内です。

短縮名

短縮名は30文字以内です。

グループはオプションです。ラベルには10,000グループまで含むことができます。

すべてのラベルにグループは必要ではありません。データの機密性を分析すると、一部のグループが特定のレベルでのみ使用されている場合があります。たとえば、HIGHLY_SENSITIVEおよびCONFIDENTIALラベルはグループなしで指定し、SENSITIVEラベルはグループを含むように指定できます。

5.4.7 ポリシー・ラベル・グループの作成

SA_COMPONENTS.CREATE_GROUPプロシージャは、ラベル・グループを作成します。

  • 必要なラベル・グループごとにSA_COMPONENTS.CREATE_GROUPプロシージャを実行します。
    次の例では、最初のCREATE_GROUPプロシージャは親グループWRを作成し、2番目のプロシージャはparent_nameパラメータを使用して2番目のグループをWRグループに関連付けます。
    BEGIN
     SA_COMPONENTS.CREATE_GROUP (
      policy_name     => 'emp_ols_pol',
      group_num       => 1000,
      short_name      => 'WR',
      long_name       => 'WESTERN_REGION');
    END;
    /
    BEGIN
     SA_COMPONENTS.CREATE_GROUP (
      policy_name     => 'emp_ols_pol',
      group_num       => 1100,
      short_name      => 'WR_SAL',
      long_name       => 'WR_SALES',
      parent_name     => 'WR');
    END;
    /

関連トピック

5.4.8 名前付きデータ・ラベルへのポリシー・コンポーネントの関連付けについて

ラベル・コンポーネントを定義した後、データ・ラベルを既存のポリシーに関連付けることにより、データ・ラベル自体を作成できます。

オプションで、この関連付けに区分とグループを含めることもできます。

Oracle Enterprise Manager Cloud ControlまたはSA_LABEL_ADMIN.CREATE_LABELプロシージャを使用できます。ラベルの文字列表現の構文は、次のとおりです。

level:compartment1,...,compartmentn:group1,...,groupn

ラベルを指定するテキスト文字列は、英数字、空白およびアンダースコアを含めて4,000文字以内です。ラベル名は、大文字/小文字を区別します。そのため大文字、小文字または大/小文字両方で入力できますが、文字列がデータ・ディクショナリに格納され、表示されるときには大文字が使用されます。各コンポーネントのセットをコロンで区切ります。この構文では、後続のデリミタを入力する必要はありません。

たとえば、次のような有効なラベルを作成できます。

SENSITIVE:FINANCIAL,CHEMICAL:EASTERN_REGION,WESTERN_REGION
CONFIDENTIAL:FINANCIAL:VP_GRP
SENSITIVE
HIGHLY_SENSITIVE:FINANCIAL 
SENSITIVE::WESTERN_REGION

5.4.9 名前付きデータ・ラベルへのポリシー・コンポーネントの関連付け

SA_LABEL_ADMIN.CREATE_LABELプロシージャは、データ・ラベルを作成します。

  • ポリシー名およびポリシー・コンポーネントの詳細を指定してSA_LABEL_ADMIN.CREATE_LABELを実行します。
    たとえば:
    BEGIN
     SA_LABEL_ADMIN.CREATE_LABEL  (
      policy_name     => 'emp_ols_pol',
      label_tag       => '1310',
      label_value     => 'S:FINCL,CHEM:ER,WR',
      data_label      => TRUE);
    END;
    /

    この例では、label_value設定は短縮名書式であり、次の詳細名書式に変換されます。

    SENSITIVE:FINANCIAL,CHEMICAL:EASTERN_REGION,WESTERN_REGION

    データ・ラベルを作成する場合、2つの追加アクションが発生します。

    • ラベルが有効なデータ・ラベルとして自動的に指定されます。この機能では、データに割当て可能なラベルが制限されます。

    • ラベルを表すテキスト文字列に数値ラベル・タグが関連付けられます。保護されている表のポリシー・ラベル列には、テキスト文字列ではなく、このラベル・タグが格納されます。

      ノート:

      Oracle Internet Directoryを使用しないOracle Label Securityインストールでは、有効なデータ・ラベルの動的作成にはTO_DATA_LABELファンクションを使用します。また、その使用は厳密に制御する必要があります。

5.5 ステップ3: ラベル・セキュリティ・ポリシーのユーザーの認可

Oracle Label Securityポリシーで保護されているデータにユーザーがアクセスできるように、事前にユーザーを認可しておく必要があります。

5.5.1 ラベル・セキュリティ・ポリシーのユーザーの認可について

ユーザーを認可する場合、行データ・ラベルに基づいて行データにアクセスできるようにします。

ユーザーの認可を設定するには、レベル、0個以上のコンパートメント、および0個以上のグループをユーザー・ラベルとして設定します。ユーザーに現在付与されている権限を確認するには、DBA_SA_USER_PRIVSデータ・ディクショナリ・ビューを問い合せます。

5.5.2 レベルの認可について

デフォルト、最小および最大の認可レベルを明示的に設定できます。

表5-8 管理者が設定する認可レベル

認可 意味

最大レベル

ユーザーが読取りおよび書込み操作中にアクセスできる機密性の最大ランキング。

最小レベル

ユーザーが書込み操作中にアクセスできる機密性の最小ランキング。最大レベルは最小レベル以上に設定する必要があります。

デフォルト・レベル

Oracle Databaseへの接続時にデフォルトで想定されるレベル

デフォルト行レベル

Oracle Databaseへのデータの挿入時にデフォルトで使用されるレベル

たとえば、ユーザーhprestonに対して次の認可レベルを設定できます。

タイプ 短縮名 詳細名 説明

最大値

HS

HIGHLY_SENSITIVE

ユーザーの最上位レベル

最小値

P

PUBLIC

ユーザーの最下位レベル

デフォルト

C

CONFIDENTIAL

ユーザーのデフォルト・レベル

C

CONFIDENTIAL

INSERTの行レベル

5.5.3 レベルの認可

SA_USER_ADMIN.SET_LEVELSプロシージャは、ポリシー・レベル・コンポーネントに対してユーザーを認可します。

レベルを指定する場合は、詳細名ではなく簡易名を常に使用する必要があります。
  • ポリシー名、ユーザー名およびレベルを指定して、レベルを認可するためのSA_USER_ADMIN.SET_LEVELSを実行します。
    たとえば:
    BEGIN
     SA_USER_ADMIN.SET_LEVELS (
      policy_name   => 'ols_admin_pol',
      user_name     => 'hpreston', 
      max_level     => 'HS',
      min_level     => 'P',
      def_level     => 'C',
      row_level     => 'C');
    END;
    /

関連トピック

5.5.4 区分の認可について

特定のレベルに対してユーザーを認可した後、オプションでユーザーに認可された区分を指定できます。

区分ごとに、書込みアクセス権を明示的に指定する必要があります。ユーザーは、書込み認可を持たない区分を含む行を直接挿入、更新または削除することはできません。

たとえば、ユーザーhprestonに対して次の認可区分を設定できます。

短縮名 詳細名 書込み デフォルト

CHEM

CHEMICAL

あり

あり

なし

FINCL

FINANCIAL

あり

あり

なし

OP

OPERATIONAL

あり

あり

あり

5.5.5 区分の認可

SA_USER_ADMIN.SET_COMPARTMENTSプロシージャは、区分コンポーネントに対してユーザーを認可します。

区分を指定する場合は、詳細名ではなく簡易名を常に使用する必要があります。
  • ポリシー名、ユーザー名および区分の詳細を指定して、区分に対してユーザーを認可するためのSA_USER_ADMIN.SET_COMPARTMENTSを実行します。
    たとえば:
    BEGIN
     SA_USER_ADMIN.SET_COMPARTMENTS (
      policy_name   => 'ols_admin_pol',
      user_name     => 'hpreston', 
      read_comps    => 'FINCL',
      write_comps   => 'FINCL',
      def_comps     => 'FINCL',
      row_comps     => 'FINCL');
    END;
    /
    
このプロシージャを実行した後で、SA_USER_ADMIN.ADD_COMPARTMENTSプロシージャを実行することで追加区分に対してユーザーを認可できます。

5.5.6 グループの認可について

ユーザーが関連付けを認可されているグループのリストを指定できます。

リストに含めるグループごとに、書込みアクセス権を明示的に指定する必要があります。

たとえば、次の認可グループを設定できます。

短縮名 詳細名 書込み デフォルト

WR_HR

WR_HUMAN_RESOURCES

あり

あり

あり

WR

WR_AP

WR_ACCOUNTS_PAYABLE

あり

あり

なし

WR_FIN

WR_AR

WR_ACCOUNTS_RECEIVABLE

あり

あり

なし

WR_FIN

グループ親の関連付けの定義は、グループ定義の一環として実行されます。

5.5.7 グループの認可

SA_USER_ADMIN.SET_GROUPS プロシージャは、ポリシー・グループに対してユーザーを認可します。

  • ポリシー名、ユーザー名および目的の認可を指定して、ユーザーを認可するためのSA_USER_ADMIN.SET_GROUPSを実行します。グループを指定する場合は、詳細名ではなく簡易名を使用する必要があります。
    たとえば:
    BEGIN
     SA_USER_ADMIN.SET_GROUPS (
      policy_name   => 'ols_admin_pol',
      user_name     => 'hpreston', 
      read_groups   => 'WR_AP',
      write_groups  => 'WR_AP',
      def_groups    => 'WR_AP',
      row_groups    => 'WR_AP');
    END;
    /
このプロシージャを実行した後、SA_USER_ADMIN.ADD_GROUPSプロシージャの実行によって他のグループに対してそのユーザーを認可できます。

関連トピック

5.6 ステップ4: ユーザーおよびトラステッド・ストアド・プログラム・ユニットへの権限の付与

Oracle Label Securityでは、認可されたユーザーに対してポリシーの特定部分をバイパスすることを許可する特殊な権限がサポートされます

5.6.1 ポリシーのユーザーおよびトラステッド・プログラム・ユニットへの権限の付与について

特定の認可ユーザーおよびトラステッド・プログラム・ユニットには、OLSポリシーの一部をバイパスするための特別な権限が必要な場合があります。

トラステッド・プログラム・ユニットは、Oracle Label Security権限を付与されているファンクション、プロシージャまたはパッケージです。トラステッド・ストアド・プログラム・ユニットの作成方法は、標準的なプロシージャ、ファンクションまたはパッケージを作成する場合と同じで、CREATE PROCEDURECREATE FUNCTIONまたはCREATE PACKAGEおよびCREATE PACKAGE BODYの各文を使用します。プログラム・ユニットは、Oracle Label Security権限を付与するとトラステッド・プログラム・ユニットになります。

表5-9に、ユーザーまたはトラステッド・ストアド・プログラム・ユニットに付与できる特別な権限のサマリーを示します。

表5-9 Oracle Label Securityの権限

セキュリティ権限 説明

READ

ポリシーで保護されている全データへの読取りアクセスを許可します。

FULL

ポリシーで保護されている全データへの完全な読取りおよび書込みアクセスを許可します。

COMPACCESS

セッション・ラベル・レベルと区分がデータ・レベルと区分を支配している場合は、グループ・コンポーネント・チェックをバイパスします

PROFILE_ACCESS

セッションに対して、そのラベルと権限を別のユーザーのラベルおよび権限に変更することを許可します。

WRITEUP

ユーザーに対して、行ラベル内でそのユーザーが認可されている最大レベル以下のレベルのみの設定または引上げを許可します。(LABEL_UPDATEがアクティブな場合にのみアクティブです。)

WRITEDOWN

ユーザーに対して、行ラベル内でそのユーザーが認可されている最小レベル以上のレベルへの設定または引下げを許可します。(LABEL_UPDATEがアクティブな場合にのみアクティブです。)

WRITEACROSS

ユーザーに対して、行ラベルのグループと区分の設定または変更は許可し、レベルの変更は禁止します。(LABEL_UPDATEがアクティブな場合にのみアクティブです。)

5.6.2 ユーザーへの権限の付与

SA_USER_ADMIN.SET_USER_PRIVSプロシージャは、ユーザーに権限を付与します。

  • ポリシー名、ユーザー名および付与する権限を指定して、SA_USER_ADMIN.SET_USER_PRIVSを実行します。
    たとえば:
    BEGIN
     SA_USER_ADMIN.SET_USER_PRIVS(
      policy_name   => 'ols_admin_pol',
      user_name     => 'hpreston', 
      privileges    => 'WRITEDOWN');
    END;
    /

関連トピック

5.6.3 トラステッド・プログラム・ユニットへの権限の付与

SA_USER_ADMIN.SET_PROG_PRIVSプロシージャは、トラステッド・プログラム・ユニットに権限を付与します。

  • ポリシー名、スキーマ名、プログラム・ユニット名および付与する権限を指定して、権限を付与するためのSA_USER_ADMIN.SET_PROG_PRIVSを実行します。
    たとえば:
    BEGIN
     SA_USER_ADMIN.SET_PROG_PRIVS (
      policy_name         => 'oe_ols_pol',
      schema_name         => 'oe',
      program_unit_name   => 'check_order_updates',
      privileges          => 'READ');
    END;
    /

関連トピック

5.7 ステップ5: データベース表またはスキーマへのポリシーの適用

Oracle Label Securityポリシーに対する認可および権限を付与した後は、それをデータベース表またはスキーマに適用できます。

5.7.1 データベース表またはスキーマへのポリシーの適用について

表にポリシーを適用する場合、ポリシーは自動的に有効になります。

ポリシーを無効にすると保護がオフになりますが、ポリシーは表に適用されたままになります。ポリシーを有効にすると、特定の表またはスキーマに対するそのポリシーの保護がオンになり、強制されます。

ポリシーを削除すると、表またはスキーマから完全に削除されます。ただし、ポリシーのラベル列およびそのラベルは、明示的に削除しないかぎり表に残ります。

今後スキーマに作成できる表のデフォルトのポリシー強制オプションを変更できます。ただし、この変更は、スキーマにある既存の表のポリシー施行オプションには反映されません。

既存の表の強制オプションを変更するには、最初に表からポリシーを削除し、目的の変更を行ってから、ポリシーを表に再適用します。

主キーと外部キーとのマスター/ディテール表の関係が存在する場合、OLSポリシーで保護する必要がある表は1つのみです。その他の表も、キー関係に基づいて保護されます。

外部表に対してOracle Label Securityポリシーを強制することはできません。

ポリシー・コンポーネントを作成し、ユーザー認証、権限およびそれらの監査を構成した後で、ポリシーをデータベース表またはスキーマ全体に適用できます。

ポリシーをデータベース表に適用する場合、ポリシー名およびターゲット・スキーマ表に加えて、次の情報を指定する必要があります。

  • table_options: 表に使用するポリシー強制オプションのカンマ区切りのリストです。NULLの場合は、ポリシーのデフォルト・オプションが使用されます。

  • label_function: デフォルトとして使用するラベル値を戻すファンクションをコールする文字列です。たとえば、my_label(:new.dept,:new.status)を指定すると、行のDEPT列とSTATUS列の新規の値に基づいてラベルが計算されます。

  • predicate: READ_CONTROLのラベルベースの述語と(ANDまたはORを使用して)結合する追加の述語です。

スキーマでOracle Label Securityのポリシーを使用する場合は、次の側面に注意してください。

  • ポリシーを空のスキーマに適用すると、そのスキーマ内で表を作成するたびにポリシーが適用されます。ポリシーをスキーマに適用すると、選択したデフォルト・オプションは追加するすべての表に適用されます。

  • 保護を解除するために表からポリシーを削除してから、SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICYを実行しても、その表の保護は解除されたままになります。表を再び保護する場合は、その表にポリシーを適用するか、スキーマにポリシーを再適用する必要があります。

すでにポリシーで保護されている表を含むスキーマにポリシーを適用すると、将来のすべての表には、ポリシーの適用時に指定した新規オプションが設定されます。既存の表に設定されていたオプションは変更されません。

5.7.2 スキーマへのポリシーの適用

SA_POLICY_ADMIN.APPLY_TABLE_POLICYではポリシーがスキーマ内の表に適用され、SA_POLICY_ADMIN.APPLY_SCHEMA_POLICYプロシージャではポリシーがスキーマ全体に適用されます。

  • ポリシー名、スキーマ名および必要なオプションを指定して、ポリシーを表に適用するためのSA_POLICY_ADMIN.APPLY_TABLE_POLICYを実行します。
    次の例に、SA_POLICY_ADMIN.APPLY_TABLE_POLICYプロシージャを使用してols_admin_polポリシーをHR.EMPLOYEES表に適用する方法を示します。
    BEGIN
     SA_USER_ADMIN.APPLY_TABLE_POLICY (
      policy_name    => 'ols_admin_pol',
      schema_name    => 'hr', 
      table_name     => 'employees',
      table_options  => 'READ_CONTROL,WRITE_CONTROL,CHECK_CONTROL',
      label_function => 'hr.gen_emp_label(:new.department_id,:new.salary',
      predicate      => NULL);
    END;
    /
    

    この例では、SA_POLICY_ADMIN.APPLY_SCHEMA_POLICYプロシージャを使用してポリシーをスキーマ全体に適用する方法を示します。

    BEGIN
     SA_USER_ADMIN.APPLY_SCHEMA_POLICY (
      policy_name      => 'ols_admin_pol',
      schema_name      => 'hr', 
      default_options  => NULL);
    END;
    /

5.8 ステップ6: 表の行へのポリシー・データ・ラベルの追加

ポリシー・データ・ラベルを表の行に追加する必要があります。

5.8.1 表の行へのポリシー・データ・ラベルの追加について

ポリシーを表に適用した後は、データ・ラベルを表の行に追加する必要があります。

これらのラベルは、以前に表内に作成したポリシーのラベル列に格納されています。表を更新するユーザーには、ポリシーに対するFULLセキュリティ権限が必要です。通常、このユーザーは表の所有者です。

5.8.2 表の行へのポリシー・データ・ラベルの追加

ポリシー・ラベルを追加する表を更新する必要があります。

  1. 表にデータ・ラベルを追加するには、SQL*Plusで、次の構文を使用してUPDATE文を入力します。
    UPDATE table_name
    SET ols_column = CHAR_TO_LABEL('ols_policy','data_label')
    WHERE UPPER(table_column) IN (column_data);
    

    たとえば、LABCSYSACCESS_LOCATIONSというポリシーを作成した後、HR.LOCATIONS表の北京、東京およびシンガポールの各都市にラベルSENSを追加するとします。ポリシーのラベル列はROW_LABELであるとします。UPDATE文は、次のようになります。

    UPDATE LOCATIONS
    SET ROW_LABEL = CHAR_TO_LABEL('ACCESS_LOCATIONS','SENS')
    WHERE UPPER(city) IN ('BEIJING', 'TOKYO', 'SINGAPORE');
    
  2. 次のSELECT文を実行して、ポリシーが表に追加されたことを確認します。
    SELECT LABEL_TO_CHAR (ROW_LABEL) FROM LOCATIONS;

5.9 ステップ7: 監査の構成(オプション)

Oracle Label Securityポリシーについては、監査を有効にする場合は、統合監査ポリシーを作成する必要があります。

  1. LBAC_DBAデータベース・ロールおよびAUDIT_ADMINシステム権限があるユーザーとしてデータベース・インスタンスにログインします。
  2. Oracle Label Securityポリシーの統合監査ポリシーを作成します。
    たとえば:
    CREATE AUDIT POLICY ols_admin_pol
     ACTIONS UPDATE ON HR.EMPLOYEES, DELETE ON HR.EMPLOYEES
     ACTIONS COMPONENT=OLS DROP POLICY, DISABLE POLICY;
  3. この統合監査ポリシーを有効にします。
    たとえば:
    AUDIT POLICY ols_admin_pol;
監査レコードは、統合監査証跡に書き込まれ、UNIFIED_AUDIT_TRAILデータ・ディクショナリ・ビューで表示できます。たとえば:
SELECT OLS_PRIVILEGES_USED FROM UNIFIED_AUDIT_TRAIL 
WHERE OLS_POLICY_NAME = 'OLS_ADMIN_POL' AND DBUSERNAME = 'PSMITH';

5.10 Oracle Label SecurityポリシーおよびOracle Flashback Data Archiveの使用

Oracle Label Securityポリシーは、Oracle Flashback Data Archive (FDA)では自動的には機能しません。

表のOracle Label Securityポリシーを作成した後、フラッシュバック・データ・アーカイブ(FDA)履歴表に相当するポリシーを作成することを検討してください。
  1. Oracle Label Securityポリシーをアタッチした表のオブジェクトIDを検索します。
    たとえば、Oracle Label SecurityポリシーをHR.LOCATIONS表にアタッチしたとします。
    SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OBJECT_NAME='LOCATIONS' AND OWNER='HR';
  2. このオブジェクトIDを使用して、Oracle Label Securityポリシーの関連表に関連付けられている履歴表のポリシー・コンテナを作成します。

5.11 Enterprise Manager Cloud Controlを使用したOLSポリシーの作成

Oracle Enterprise Manager Cloud ControlでOracle Label Securityポリシーを作成できます。ただし、Cloud Controlを使用して監査ポリシーを作成することはできません。SQL*Plusを使用して統合監査ポリシーを作成する必要があります。

5.11.1 Cloud Controlを使用したラベル・セキュリティ・ポリシー・コンテナの作成

Cloud ControlでOracle Label Securityポリシー・コンテナを作成できます。

  1. ユーザーSYSTEMとしてCloud Controlにログインします。
  2. 使用するデータベースに移動するには、「ターゲット」メニューから「データベース」を選択します。
  3. 表示されたリストで、データベース名をクリックします。

    データベースのページが表示されます。

  4. 「管理」メニューで、「セキュリティ」、「Oracle Label Security」の順に選択します。「Label Securityポリシー」ページが表示されます。

    Oracle Label Security管理者の資格証明を使用してデータベースにログインする必要がある場合があります。

  5. 「作成」をクリックし、新しいLabel Securityポリシーの作成を開始します。「Label Securityポリシーの作成」ページが表示されます。
  6. ポリシーの名前、ラベル列およびデフォルトのポリシー施行オプションを定義します。
    • 名前: ポリシーの名前(access_locationsなど)を入力します。

    • ラベル列: (オプション) OLS_COLUMNなど、ラベル列の名前を入力します。列名を指定せずにOLSポリシーを作成した場合、列名はPol_name_COLとして自動生成されます。後で表にポリシーを適用する際に、ラベル列がその表に追加されます。デフォルトでは、ポリシーのラベル列のデータ型はNUMBER(10)です。NUMBER(10)データ型の既存の表の列をラベル列として指定することもできます。

    • ラベル列の非表示: 列を非表示にする場合に選択します。ポリシーを初めて作成する場合、ポリシーの開発中は「ラベル列の非表示」を無効にできます。ポリシーが完成し使用準備が整った時点で、アプリケーションに対して透過的になるように列を非表示にします。

    • 有効: ポリシーを有効または無効に切り替えます。

    • デフォルトのポリシー強制オプション: ポリシーの適用時に、デフォルトのポリシー強制オプションが使用されます。これらのオプションが、ポリシーを適用するアプリケーションのニーズと一致していることを確認してください。

      次のオプションから選択します。

      • ポリシー強制を適用しない(NO_CONTROL)

      • ポリシー強制の適用

        すべての問合せ用(READ_CONTROL)

        INSERT操作用(INSERT_CONTROL)

        UPDATE操作用(UPDATE_CONTROL)

        ラベル列の更新にセッションのデフォルト・ラベルを使用(LABEL_DEFAULT)

        ラベル列を更新する操作(LABEL_UPDATE)

        読取りアクセスが可能になるUPDATEおよびINSERT操作(CHECK_CONTROL)

  7. 「OK」をクリックします。

    新しいポリシーが「Oracle Label Securityポリシー」ページに表示されます。このポリシー・コンテナを作成すると、Oracle Label Securityによって、ポリシーにちなんだ名前(ACCESS_LOCATIONS_DBAなど)のロールが作成されて付与されます。これにより、このポリシーの存続期間中、このポリシーを管理できます。

5.11.2 Cloud Controlを使用したポリシー・コンポーネントの作成

ポリシーのコンテナを作成し、その強制オプションを設定した後は、ポリシーに区分を作成できます。

  1. 「Oracle Label Securityポリシー」ページで、前述のステップで作成したポリシーを選択します。「編集」をクリックします。
  2. 「Label Securityポリシーの編集」ページで、「ラベル・コンポーネント」タブを選択します。
  3. 「レベル」の下の「5行追加」をクリックし、ポリシーのレベルを追加します。作成する各レベルに対して、詳細名、短縮名および数値タグを入力します。この数値タグは、レベルの機密性に対応しています。レベルをさらに作成する場合は、「5行追加」を再度クリックします。同じステップを使用して、区分と行を作成します。区分とグループの場合、数値タグは機密性に対応していません。

    少なくとも1つのレベル(SECRETなど)を作成する必要があります。区分とグループの作成はオプションです。

    レベル番号は、対応しているラベルの機密性レベルを示します。番号が大きいほど機密性が大きいことを意味します。セキュリティ・ポリシーに追加のレベルが必要になる場合に備えて、後で拡張できるような数値の範囲を選択します。たとえば、レベルをPUBLIC (7000)およびSENSITIVE (8000)として作成すると、後でCONFIDENTIALという中間レベルを作成することになった場合に、このレベルに対して7500という数値を割り当てることができます。

    区分は、データに関連付けられているカテゴリを識別し、レベル内にさらに細分化したレベルを提供します。たとえば、1つの表に様々な部門に対応したデータがあり、そのデータを分類するために区分が必要な場合があります。区分はオプションです。

    グループは、データを所有する組織またはデータにアクセスする組織を識別します。グループは、データを制御された方法で配布したり、組織の変更に適切なタイミングで対処する場合に役立ちます。グループはオプションです。

  4. 「適用」をクリックします。

5.11.3 Cloud Controlを使用したポリシーのデータ・ラベルの作成

Cloud ControlでOracle Label Securityポリシーのデータ・ラベルを作成できます。

  1. 「Label Securityポリシー」ページで、ラベルをレベルにリンクする必要のあるポリシーを選択します。
  2. 「アクション」ボックスで、「データ・ラベル」を選択します。「実行」をクリックします。

    「データ・ラベル」ページが表示されます。

  3. 「追加」をクリックします。

    「データ・ラベルの作成」ページが表示されます。

  4. 次の情報を入力します。
    • 数値タグ: ラベルを一意に識別する番号を入力します。この番号は、すべてのポリシーにわたって一意である必要があります。

    • レベル: リストからレベルを選択します。

  5. 必要に応じて、ラベルに追加する区分を選択できます。区分を追加するには、「区分」の下の「追加」をクリックします。ラベルに追加する区分を選択します。「選択」をクリックして区分を追加します。
  6. オプションで、グループを追加するには、「グループ」の下の「追加」をクリックします。ラベルに追加するグループを選択します。「選択」をクリックしてグループを追加します。
  7. 「データ・ラベルの作成」ページの「OK」をクリックします。

    「データ・ラベル」ページにデータ・ラベルが表示されます。

  8. 追加のデータ・ラベルを作成するには、ステップ3から7を繰り返します。

また、SA_LABEL_ADMINパッケージを使用してポリシーのラベル・コンポーネントを定義できます。

5.11.4 Cloud Controlの使用によるポリシーの認可および権限付与

ユーザー作成プロセスの間に、ポリシーについてユーザーに対する認可および権限付与ができます。

  1. 「Label Securityポリシー」ページで、認可が必要なポリシーを選択します。
  2. 「アクション」ボックスで、「認可」を選択します。「実行」をクリックします。

    「ユーザーの作成」ページが表示されます。

  3. 次の手順でユーザーを追加します。
    • 「データベース・ユーザー」の下の「追加」をクリックします。「検索と選択」ウィンドウで、目的のユーザーを選択して「選択」をクリックします。

    • 「データベース以外のユーザー」については、その下の「5行追加」をクリックし、追加対象となるデータベース以外のユーザーのユーザー名を追加します。ほとんどのアプリケーション・ユーザーは、データベース以外のユーザーと考えられます。データベース以外のユーザーはデータベースには存在しません。Oracle Databaseの命名方式に一致し、VARCHAR2(30)の長さのフィールドに適合していれば、どのユーザー名も追加できます。ただし、アプリケーションがデータベースに接続する際、データベース以外のユーザーに関するセキュリティ情報は自動的に構成されないことに注意してください。この場合、アプリケーションでは、Oracle Label Securityのファンクションをコールして、実質的なデータベース・ユーザーでない特定ユーザーのラベル認可を想定する必要があります。

  4. 「ユーザーの作成」ページで、認可するユーザーを選択します。「次へ」をクリックします。複数のユーザーが同じ認可を必要としている場合は、同じ認可を必要とするすべてのユーザーを選択します。「次へ」をクリックします。

    「権限」ステップが表示されます。

  5. ここでは、前述のステップで選択したユーザーに権限を割り当てることができます。権限によって、データベース・ユーザーはポリシーで施行される特定の制約をバイパスできます。付与する権限を選択します。「次へ」をクリックします。

    ユーザーに権限を割り当てない場合は、権限を選択せずに「次へ」をクリックします。

    「レベル、区分およびグループ」ステップが表示されます。

  6. 次に、ユーザーのユーザー・ラベルを作成するには、「レベル」で懐中電灯のアイコンを使用して次のフィールドに入力するデータを選択します。
    • 最大レベル: このユーザーに対する読取りおよび書込みアクセスの最上位レベルを入力します。

    • 最小レベル: 書込みアクセスの最下位レベルを入力します。

    • デフォルト・レベル: ユーザーがログインする際のデフォルトのレベルを入力します。

      最小レベル以上かつ最大レベル以下の値を指定します。

    • 行レベル: ユーザーが表に書き込む際の、行に指定されるレベルを入力します。

  7. 「区分」で「追加」をクリックして、ユーザー・ラベルに区分を追加します。追加する区分を選択します。「選択」をクリックします。
  8. 追加する各区分については、次のプロパティを選択できます。
    • 書込み: ユーザーは、その区分をラベルの一部として持つデータに書き込むことができます。

    • デフォルト: その区分を、ユーザーのデフォルトのセッション・ラベルに追加します。

    • : ユーザーが表に書き込む際に、その区分をデータ・ラベルに追加します。

  9. 「グループ」の下の「追加」をクリックし、グループをユーザー・ラベルに追加します。グループを選択し、「選択」をクリックします。
  10. 追加する各グループについては、次のプロパティを選択できます。
    • 書込み: ユーザーは、そのグループをラベルの一部として持つデータに書き込むことができます。

    • デフォルト: そのグループを、ユーザーのデフォルトのセッション・ラベルに追加します。

    • : ユーザーが表に書き込む際に、そのグループをデータ・ラベルに追加します。

  11. 「次へ」をクリックします。

    「監査」ステップが表示されます。

  12. 「次」をクリックして「監査」ステップを回避します。
    新しいOracle Label Securityポリシーでは、従来型監査を構成できません。かわりに、SQL*Plusを使用して統合監査ポリシーを作成する必要があります。
  13. ポリシー認可設定を確認できます。ポリシー認可を作成するには、「終了」をクリックします。「戻る」をクリックして、認可設定を変更することもできます。

また、SA_USER_ADMINパッケージを使用してユーザーを認可する方法もあります。

5.11.5 Cloud Controlを使用したトラステッド・プログラム・ユニットへの権限の付与

Cloud Controlで、トラステッド・プログラム・ユニットに権限を付与できます。

  1. 「Label Securityポリシー」ページで、認可が必要なポリシーを選択します。
  2. 「アクション」ボックスで、「認可」を選択します。「実行」をクリックします。

    「認可」ページが表示されます。

  3. 「トラステッド・プログラム・ユニット」タブをクリックします。
  4. 「追加」をクリックして、プロシージャ、ファンクションまたはパッケージに対するOracle Label Security権限を追加します。

    「プログラム・ユニットの作成」ページが表示されます。

  5. 「プログラム・ユニット」フィールドに、権限を付与する必要があるプロシージャ、ファンクションまたはパッケージの名前を入力します。「検索」アイコンを使用して、プロシージャ、ファンクションまたはパッケージを検索することもできます。
  6. プログラム・ユニットに付与する必要があるポリシー固有の権限を1つ以上選択します。「OK」をクリックします。

    「認可」ページに、トラステッド・プログラム・ユニットが追加されます。

また、SA_USER_ADMINパッケージを使用してトラステッド・プログラム・ユニットを認可する方法もあります。

5.11.6 Cloud Controlを使用したデータベース表へのポリシーの適用

Cloud Controlで、Oracle Label Securityポリシーをデータベース表に適用できます。

  1. 「Label Securityポリシー」ページで、表に適用する必要があるポリシーを選択します。
  2. 「アクション」ボックスから「適用」を選択します。「実行」をクリックします。

    「適用」ページが表示されます。

  3. ポリシーを表に適用するには、「表」タブを選択します。

    ポリシーをスキーマに適用する場合は「スキーマ」タブを選択します。手順は、ポリシーを表に適用する場合と同じです。

  4. 「作成」をクリックします。

    「表の追加」ページが表示されます。

  5. 「表」ボックスの横にある懐中電灯アイコンをクリックします。
  6. 「検索と選択」ウィンドウの「検索」の下に、次の情報を入力します。
    • スキーマ: 表が表示されるスキーマの名前を入力します。このフィールドを空のままにすると、すべてのスキーマの表が表示されます。

    • 名前: 必要に応じて表の名前を入力します。このボックスを空のままにすると、スキーマ内のすべての表が表示されます。

    ワイルドカードを使用して検索範囲を絞り込むには、パーセント(%)符号を使用します。たとえば、Oの文字で開始する表をすべて検索するには、O%と入力します。

  7. 表を選択し、「選択」をクリックします。

    「表の追加」ページが表示されます。

  8. 次の情報を入力します。
    • ポリシー強制オプション: 必要に応じて施行オプションを選択します。これらのオプションは、ラベル・セキュリティ・ポリシー・コンテナの作成時に選択した強制オプションに加えて表に適用されます。

      施行オプションを変更しない場合、つまり、前述のステップで作成した内容と同じ施行オプションを使用する場合は、「デフォルトのポリシー強制を使用」を選択します。施行オプションをさらに追加する場合は、リストされている他のオプションを選択します。

    • Labeling Function: (オプション)新しい行または更新された行に関連付けるラベルを自動的に計算する、ラベル付けの関数を指定します。アクティブなラベル付けの関数は、ラベルを提供する他の方法よりも優先されるため、この関数は常に実行され、ポリシーに書き込まれたデータ・ラベルを提供します。

    • 述語: 必要に応じて、READ_CONTROLのラベルベースの述語と(ANDまたはORを使用して)結合する追加の述語を指定します。

  9. 「OK」をクリックします。

5.11.7 Cloud Controlを使用した表の行へのポリシー・データ・ラベルの適用

Cloud Controlで、Oracle Label Securityポリシー・データ・ラベルを表の行に適用できます。

  1. 「ラベル・セキュリティ・ポリシー」ページで、ACCESS_LOCATIONSなどのポリシーを選択します。
  2. 「アクション」ボックスから「認可」を選択します。「実行」をクリックします。

    「認可」ページが表示されます。

  3. 「追加」をクリックします。

    「ユーザーの作成」ページが表示されます。

  4. 「データベース・ユーザー」の下の「追加」をクリックします。

    「検索と選択」ウィンドウが表示されます。

  5. 表を所有するユーザーに対応するチェック・ボックスを選択します。「選択」をクリックします。

    追加されたユーザーが「ユーザーの作成」ページにリストされます。

  6. 「次へ」をクリックします。

    「権限」ステップが表示されます。

  7. ユーザーに対して適切な権限を選択し、「次へ」をクリックします。

    ラベル、区分およびグループ・ページが表示されます。

  8. 「次へ」をクリックします。

    「監査」ステップが表示されます。

  9. 「次へ」をクリックします。

    「確認」ステップが表示されます。

  10. 「終了」をクリックします。