5 Oracle Label Securityポリシーの作成
Oracle Label Securityポリシーは、Oracle Label Securityを実装する名前付きのコマンド・セットです。
- Oracle Label Securityポリシーの作成について
Oracle Label Securityポリシーにより、ラベルに基づいてデータへのユーザー・アクセスが強制されます。 - Oracle Label Securityポリシーを管理するための権限
ユーザーがOracle Label Securityのポリシー・コンテナを作成すると、Oracle Label Securityによって、ポリシー_DBA
の形式の名前でポリシーに固有の管理ロールが、このユーザーに作成されて付与されます。 - ステップ1: ラベル・セキュリティ・ポリシー・コンテナの作成
Oracle Label Securityポリシー・コンテナは、ポリシー設定の格納場所です。 - ステップ2: ラベル・セキュリティ・ポリシーのラベルの作成
ポリシー・コンテナを作成した後は、保護された表の各行で使用するデータ・ラベルを作成できます。 - ステップ3: ラベル・セキュリティ・ポリシーのユーザーの認可
Oracle Label Securityポリシーで保護されているデータにユーザーがアクセスできるように、事前にユーザーを認可しておく必要があります。 - ステップ4: ユーザーおよびトラステッド・ストアド・プログラム・ユニットへの権限の付与
Oracle Label Securityでは、認可されたユーザーに対してポリシーの特定部分をバイパスすることを許可する特殊な権限がサポートされます - ステップ5: データベース表またはスキーマへのポリシーの適用
Oracle Label Securityポリシーに対する認可および権限を付与した後は、それをデータベース表またはスキーマに適用できます。 - ステップ6: 表の行へのポリシー・データ・ラベルの追加
ポリシー・データ・ラベルを表の行に追加する必要があります。 - ステップ7: 監査の構成(オプション)
Oracle Label Securityポリシーについては、監査を有効にする場合は、統合監査ポリシーを作成する必要があります。 - Oracle Label SecurityポリシーおよびOracle Flashback Data Archiveの使用
Oracle Label Securityポリシーは、Oracle Flashback Data Archive (FDA)で自動的には機能しません。 - Enterprise Manager Cloud Controlを使用したOLSポリシーの作成
Oracle Enterprise Manager Cloud ControlでOracle Label Securityポリシーを作成できます。ただし、Cloud Controlを使用して監査ポリシーを作成することはできません。SQL*Plusを使用して統合監査ポリシーを作成する必要があります。
親トピック: Oracle Label Securityの機能の使用
5.1 Oracle Label Securityポリシーの作成について
Oracle Label Securityポリシーにより、ラベルに基づいてデータへのユーザー・アクセスが強制されます。
-
ポリシー名、Oracle Label Securityが保護対象の表に追加する列の名前、この列を非表示にするかどうか、ポリシーを有効にするかどうか、およびポリシーのデフォルトの強制オプションを定義するポリシー・コンテナを作成します。
詳細は、「ステップ1: ラベル・セキュリティ・ポリシー・コンテナの作成」を参照してください。
-
ラベルの機密性レベルのコンポーネントを定義します。また、オプションで区分とグループのコンポーネントを定義して、ラベルの機密性をさらにフィルタします。コンポーネントを定義した後で、ラベル自体を作成し、これらのコンポーネントをラベルに関連付けます。
「ステップ2: ラベル・セキュリティ・ポリシーのラベルの作成」を参照してください。
-
ポリシーに対してユーザーを認可します。
詳細は、「ステップ3: ラベル・セキュリティ・ポリシーのユーザーの認可」を参照してください。
-
これらのユーザーまたはトラステッド・プログラム・ユニットに権限を付与します。
詳細は、「ステップ4: ユーザーおよびトラステッド・ストアド・プログラム・ユニットへの権限の付与」を参照してください。
-
ポリシーをデータベース表に適用します。または、スキーマ全体にポリシーを適用できます。
詳細は、「ステップ5: データベース表またはスキーマへのポリシーの適用」を参照してください。
-
ポリシー・ラベルを表の行に追加します。ポリシーに使用される表を更新する必要があります。
詳細は、「ステップ6: 表の行へのポリシー・データ・ラベルの追加」を参照してください。
-
オプションで、ユーザーの監査設定を構成します。
詳細は、「ステップ7: 監査の構成(オプション)」を参照してください。
親トピック: Oracle Label Securityポリシーの作成
5.2 Oracle Label Securityのポリシーを管理するための権限
ユーザーがOracle Label Securityのポリシー・コンテナを作成すると、Oracle Label Securityによって、ポリシー_DBA
の形式の名前でポリシーに固有の管理ロールが、このユーザーに作成されて付与されます。
たとえば、emp_ols_pol
というポリシーの場合、ロール名はEMP_OLS_POL_DBA
です。このロールは、新規のユーザー・セッションの開始後に有効になります。
このユーザーがポリシーを管理できるようにするために、Oracle Label Securityで、次の確認が次の順序で実行されます:
- ユーザーに
ポリシー_DBA
ロールが付与されているかどうかを確認します。 - このユーザーに対して
ポリシー_DBA
が有効になっているかどうかを確認します。 - コール・スタックがネストされている場合は、最上位定義者の権限プロシージャ所有者に
ポリシー_DBA
ロールが付与されているかどうかを確認します。 ポリシー_DBA
ロールがLBACSYS
ユーザー(現在のユーザー)に付与されているかどうかを確認します。
親トピック: Oracle Label Securityポリシーの作成
5.3 ステップ1: ラベル・セキュリティ・ポリシー・コンテナの作成
Oracle Label Securityポリシー・コンテナは、ポリシー設定の格納場所です。
- ラベル・セキュリティ・ポリシー・コンテナについて
Oracle Label Securityポリシー・コンテナには、ポリシーの動作を記述するメタデータが格納されます。 - ラベル・ポリシー・コンテナの作成
SA_SYSDBA.CREATE_POLICY
プロシージャを使用して、Oracle Label Securityポリシー・コンテナを作成できます。
親トピック: 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: ラベル・セキュリティ・ポリシーのラベルの作成
ポリシー・コンテナを作成した後は、保護された表の各行で使用するデータ・ラベルを作成できます。
- ラベルについて
ラベルは、データ・レコードまたはユーザーに関連付けられた機密性を示します。 - ポリシー・レベルの機密性コンポーネントについて
レベルは、ラベルを付ける情報の機密性を示すランキングです。 - ポリシー・レベル・コンポーネントの作成
SA_COMPONENTS.CREATE_LEVEL
プロシージャは、ポリシー・レベル・コンポーネントを作成します。 - ポリシー区分コンポーネントについて
区分はラベル付きデータの機密性を記述する領域を識別し、レベルに対して、さらに細分化したレベルを提供します。 - ポリシー区分コンポーネントの作成
SA_COMPONENTS.CREATE_COMPARTMENT
プロシージャは、Oracle Label Security区分を作成します。 - ポリシー・グループ・コンポーネントについて
グループは、データへのアクセスが許可されている組織、リージョンまたはその他の編成構造(EASTERN_REGION
、WESTERN_REGION
、WR_SALES
など)を識別できます。 - ポリシー・ラベル・グループの作成
SA_COMPONENTS.CREATE_GROUP
プロシージャは、ラベル・グループを作成します。 - 名前付きデータ・ラベルへのポリシー・コンポーネントの関連付けについて
ラベル・コンポーネントを定義した後、データ・ラベルを既存のポリシーと関連付けることにより、データ・ラベル自体を作成できます。 - 名前付きデータ・ラベルへのポリシー・コンポーネントの関連付け
SA_LABEL_ADMIN.CREATE_LABEL
プロシージャは、データ・ラベルを作成します。
親トピック: Oracle Label Securityポリシーの作成
5.4.1 ラベルについて
ラベルは、データ・レコードまたはユーザーに関連付けられた機密性を示します。
各ラベルは、ユーザー・アクセスに使用するフィルタのタイプを制御する複数のコンポーネントを持つ単一の属性です。
表5-1に、ラベルの様々なコンポーネントについて説明します。
表5-1 ラベル・コンポーネント
コンポーネント | 説明 | 例 |
---|---|---|
レベル |
必須 - レベルは最低1つ定義する必要があります 機密性を示す名前の順序付きランク。 |
|
区分 |
機密性レベルに対するより詳細なレベルを表すために使用され、プロジェクトやその他の機密性トピックを表すことができます。 0個以上の区分をラベルに関連付けることができます。 |
|
グループ |
組織、リージョンまたはその他の属性を表します。 0個以上のグループをラベルに関連付けることができます。 |
|
すべてのラベルにはレベル・コンポーネントを含める必要がありますが、区分コンポーネントとグループ・コンポーネントはオプションです。区分とグループは、ユーザーがデータに対して持つアクセス権を微調整する方法です。すべてのラベル・コンポーネント指定に有効な文字には、英数字、アンダースコアおよび空白も含まれます。(先頭および後続の空白は無視されます。)データ・ラベルを作成する前に、ラベル・コンポーネントを定義する必要があります。
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 ポリシー・レベルの例
数値 | 詳細名 | 短縮名 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
表5-2に、レベルの数値書式、詳細名および簡易名を説明します。
表5-3 レベル指定の書式
書式 | 説明 |
---|---|
数値(タグとも呼ばれる) |
数値のレベルは0から9999です。機密性はこの数値でランキングされるため、機密性の高いレベルほど大きい数値、機密性の低いレベルほど小さい数値を割り当てる必要があります。表5-2では、40 ( 管理者は、レベルの数値に連番を使用しないようにします。良い戦略は、レベル間の数値を配置することです(10、20、30...、100、200、300...など)。これにより、既存の2つのレベル間に後からレベルを追加挿入できます。 |
詳細名 |
レベルの詳細名は80文字以内です。 |
短縮名 |
短縮名は30文字以内です。 |
レベル(およびその他の各ラベル・コンポーネント)に詳細名と短縮名の両方を定義しますが、検索時に表示されるのは短縮名のみです。ユーザーがラベルを操作する際は、コンポーネントの短縮名のみが使用されます。
レベルの例は、TOP_SECRET
、SECRET
、CONFIDENTIAL
、UNCLASSIFIED
、またはTRADE_SECRET
、PROPRIETARY
、COMPANY_CONFIDENTIAL
、PUBLIC_DOMAIN
などの名前です。
レベルのみを使用する場合、この例のレベル40のユーザーであれば、レベル40以下のすべてのデータ行に対して、アクセスまたは変更ができます。
5.4.4 ポリシー区分コンポーネントについて
コンパートメントは、ラベルが割り当てられたデータの機密性を表す領域を識別し、レベル内のより詳細なレベルを表します。
特定のプロジェクトに関連するすべてのデータに、同じ区分をラベル付けすることができます。たとえば、区分FINCL
およびCHEM
へのアクセス権を持つレベルHS
のユーザーは、OP
区分を含むデータへのアクセスを許可されません。
表5-4に、区分セットの例を示します。
表5-4 ポリシー区分の例
数値 | 詳細名 | 短縮名 |
---|---|---|
|
|
|
|
|
|
|
|
|
表5-5に、区分を指定する様々な方法を示します。
表5-5 区分指定の書式
書式 | 説明 |
---|---|
数値 |
数値の範囲は0から9999です。レベルに使用されている数値とは無関係です。区分の数値は、機密性のレベルを示すわけではありません。区分の数値は、ラベル文字列での区分短縮名の表示順序を制御します。たとえば、表5-4に示した3つの区分すべてとレベル S:OP,CHEM,FINCL これは、 表示順序は、区分に割り当てられた数値の順序に従います。45は65より小さく、65は85より小さい数値です。対照的に、 S:FINCL,OP,CHEM |
詳細名 |
区分の詳細名は80文字以内です。 |
短縮名 |
短縮名は30文字以内です。 |
区分はオプションです。ラベルには最大10,000区分を含めることができます。
区分を含まないラベルがあってもかまいません。たとえば、HIGHLY_SENSITIVE
およびCONFIDENTIAL
レベルは区分なしで指定し、SENSITIVE
レベルは区分を含むように指定できます。
データの機密性を分析すると、一部の区分が特定のレベルでのみ有用であることがわかる場合があります。
次の図では、区分を使用するとどのようにデータを分類できるかを示します。
この図では、区分FINCL
、CHEM
およびOP
がレベルHIGHLY_SENSITIVE
(HS
)とともに使用されています。ラベルHIGHLY_SENSITIVE
:FINCL
, CHEM
は、2つの名前付き区分を持つレベル40を示します。区分FINCL
とCHEM
の機密性は同じです。保護されている表の一部のデータがどの区分にも属さない場合もあることに注意してください。
区分を指定した場合、行データへのアクセスが通常は許可されるレベルのユーザーであっても、行ラベルで表示されるすべての区分もユーザーのラベルに含まれていないかぎりアクセスは禁止されます。たとえば、HS
レベルへのアクセス権を付与されるユーザーhpreston
には、FINCL
およびCHEM
へのアクセス権のみ付与され、OP
へのアクセス権は付与されません。
5.4.6 ポリシー・グループ・コンポーネントについて
グループは、データへのアクセスが許可されている組織、リージョンまたはその他の編成構造(EASTERN_REGION
、WESTERN_REGION
、WR_SALES
など)を識別できます。
特定の部門に関連するすべてのデータのラベルには、その部門のグループ名を指定できます。グループは、データを制御された方法で配布したり、組織の変更に適切なタイミングで対処する場合に役立ちます。会社組織の再編時には、データ・アクセス権も再編成に沿って適切に変更できます。
グループは階層化できます。組織のインフラストラクチャに基づいてデータにラベルを付けることができます。つまり、グループを親グループに対応付けることができます。
図5-2は、次のような組織階層に対応するグループ・セットを定義する方法を示しています。
WESTERN_REGION
グループには、3つのサブグループWR_SALES
、WR_HUMAN_RESOURCES
およびWR_FINANCE
が含まれています。WR_FINANCE
サブグループは、WR_ACCOUNTS_RECEIVABLE
およびWR_ACCOUNTS_PAYABLE
に分割されています。
表5-6に、この例の組織構造をOracle Label Securityのグループの書式で表す方法を示します。グループに割り当てられた数値書式は表示順序のみに影響します。階層(つまり、親子関係)を別々に指定します。最初にリストされるグループWESTERN_REGION
は、表の残りのグループの親グループです。
表5-6 グループの例
数値 | 詳細名 | 短縮名 | 親グループ |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表5-7に、グループを指定する際に使用する必要のある書式を示します。
表5-7 グループ指定の書式
書式 | 説明 |
---|---|
数値 |
グループの数値の範囲は0から9999で、ポリシーごとに一意である必要があります。 数値は、ランキングを示すわけではありません。また、親子関係も機密性レベルも示しません。単に、ラベル文字列でのグループの短縮名の表示順序を制御します。 たとえば、表5-6にリストしたようにレベル S:CHEM:WR,WR_HR 1000は1200より前に位置するため、 |
詳細名 |
グループの詳細名は80文字以内です。 |
短縮名 |
短縮名は30文字以内です。 |
グループはオプションです。ラベルには10,000グループまで含むことができます。
すべてのラベルにグループは必要ではありません。データの機密性を分析すると、一部のグループが特定のレベルでのみ使用されている場合があります。たとえば、HIGHLY_SENSITIVE
およびCONFIDENTIAL
ラベルはグループなしで指定し、SENSITIVE
ラベルはグループを含むように指定できます。
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.5 ステップ3: ラベル・セキュリティ・ポリシーのユーザーの認可
Oracle Label Securityポリシーで保護されているデータにユーザーがアクセスできるように、事前にユーザーを認可しておく必要があります。
- ラベル・セキュリティ・ポリシーのユーザーの認可について
ユーザーを認可する場合、行データ・ラベルに基づいて行データにアクセスできるようにします。 - レベルの認可について
デフォルト、最小および最大の認可レベルを明示的に設定できます。 - レベルの認可
SA_USER_ADMIN.SET_LEVELS
プロシージャは、ポリシー・レベル・コンポーネントに対してユーザーを認可します。 - 区分の認可について
特定のレベルに対してユーザーを認可した後、オプションでユーザーに認可された区分を指定できます。 - 区分の認可
SA_USER_ADMIN.SET_COMPARTMENTS
プロシージャは、区分コンポーネントに対してユーザーを認可します。 - グループの認可について
ユーザーが関連付けを認可されているグループのリストを指定できます。 - グループの認可
SA_USER_ADMIN.SET_GROUPS
プロシージャは、ポリシー・グループに対してユーザーを認可します。
親トピック: Oracle Label Securityポリシーの作成
5.5.1 ラベル・セキュリティ・ポリシーのユーザーの認可について
ユーザーを認可する場合、行データ・ラベルに基づいて行データにアクセスできるようにします。
ユーザーの認可を設定するには、レベル、0個以上のコンパートメント、および0個以上のグループをユーザー・ラベルとして設定します。ユーザーに現在付与されている権限を確認するには、DBA_SA_USER_PRIVS
データ・ディクショナリ・ビューを問い合せます。
5.5.2 レベルの認可について
デフォルト、最小および最大の認可レベルを明示的に設定できます。
表5-8 管理者が設定する認可レベル
認可 | 意味 |
---|---|
最大レベル |
ユーザーが読取りおよび書込み操作中にアクセスできる機密性の最大ランキング。 |
最小レベル |
ユーザーが書込み操作中にアクセスできる機密性の最小ランキング。最大レベルは最小レベル以上に設定する必要があります。 |
デフォルト・レベル |
Oracle Databaseへの接続時にデフォルトで想定されるレベル |
デフォルト行レベル |
Oracle Databaseへのデータの挿入時にデフォルトで使用されるレベル |
たとえば、ユーザーhpreston
に対して次の認可レベルを設定できます。
タイプ | 短縮名 | 詳細名 | 説明 |
---|---|---|---|
最大値 |
|
|
ユーザーの最上位レベル |
最小値 |
|
|
ユーザーの最下位レベル |
デフォルト |
|
|
ユーザーのデフォルト・レベル |
行 |
|
|
|
5.5.3 レベルの認可
SA_USER_ADMIN.SET_LEVELS
プロシージャは、ポリシー・レベル・コンポーネントに対してユーザーを認可します。
関連トピック
5.5.4 区分の認可について
特定のレベルに対してユーザーを認可した後、オプションでユーザーに認可された区分を指定できます。
区分ごとに、書込みアクセス権を明示的に指定する必要があります。ユーザーは、書込み認可を持たない区分を含む行を直接挿入、更新または削除することはできません。
たとえば、ユーザーhpreston
に対して次の認可区分を設定できます。
短縮名 | 詳細名 | 書込み | デフォルト | 行 |
---|---|---|---|---|
|
|
あり |
あり |
なし |
|
|
あり |
あり |
なし |
|
|
あり |
あり |
あり |
5.5.5 区分の認可
SA_USER_ADMIN.SET_COMPARTMENTS
プロシージャは、区分コンポーネントに対してユーザーを認可します。
SA_USER_ADMIN.ADD_COMPARTMENTS
プロシージャを実行することで追加区分に対してユーザーを認可できます。
5.5.6 グループの認可について
ユーザーが関連付けを認可されているグループのリストを指定できます。
リストに含めるグループごとに、書込みアクセス権を明示的に指定する必要があります。
たとえば、次の認可グループを設定できます。
短縮名 | 詳細名 | 書込み | デフォルト | 行 | 親 |
---|---|---|---|---|---|
|
|
あり |
あり |
あり |
|
|
|
あり |
あり |
なし |
|
|
|
あり |
あり |
なし |
|
グループ親の関連付けの定義は、グループ定義の一環として実行されます。
5.6 ステップ4: ユーザーおよびトラステッド・ストアド・プログラム・ユニットへの権限の付与
Oracle Label Securityでは、認可されたユーザーに対してポリシーの特定部分をバイパスすることを許可する特殊な権限がサポートされます
- ポリシーのユーザーおよびトラステッド・プログラム・ユニットへの権限の付与について
特定の認可ユーザーおよびトラステッド・プログラム・ユニットには、OLSポリシーの一部をバイパスするための特別な権限が必要な場合があります。 - ユーザーへの権限の付与
SA_USER_ADMIN.SET_USER_PRIVS
プロシージャは、ユーザーに権限を付与します。 - トラステッド・プログラム・ユニットへの権限の付与
SA_USER_ADMIN.SET_PROG_PRIVS
プロシージャは、トラステッド・プログラム・ユニットに権限を付与します。
親トピック: Oracle Label Securityポリシーの作成
5.6.1 ポリシーのユーザーおよびトラステッド・プログラム・ユニットへの権限の付与について
特定の認可ユーザーおよびトラステッド・プログラム・ユニットには、OLSポリシーの一部をバイパスするための特別な権限が必要な場合があります。
トラステッド・プログラム・ユニットは、Oracle Label Security権限を付与されているファンクション、プロシージャまたはパッケージです。トラステッド・ストアド・プログラム・ユニットの作成方法は、標準的なプロシージャ、ファンクションまたはパッケージを作成する場合と同じで、CREATE PROCEDURE
、CREATE FUNCTION
またはCREATE PACKAGE
およびCREATE PACKAGE BODY
の各文を使用します。プログラム・ユニットは、Oracle Label Security権限を付与するとトラステッド・プログラム・ユニットになります。
表5-9に、ユーザーまたはトラステッド・ストアド・プログラム・ユニットに付与できる特別な権限のサマリーを示します。
表5-9 Oracle Label Securityの権限
セキュリティ権限 | 説明 |
---|---|
|
ポリシーで保護されている全データへの読取りアクセスを許可します。 |
|
ポリシーで保護されている全データへの完全な読取りおよび書込みアクセスを許可します。 |
|
セッション・ラベル・レベルと区分がデータ・レベルと区分を支配している場合は、グループ・コンポーネント・チェックをバイパスします |
|
セッションに対して、そのラベルと権限を別のユーザーのラベルおよび権限に変更することを許可します。 |
|
ユーザーに対して、行ラベル内でそのユーザーが認可されている最大レベル以下のレベルのみの設定または引上げを許可します。( |
|
ユーザーに対して、行ラベル内でそのユーザーが認可されている最小レベル以上のレベルへの設定または引下げを許可します。( |
|
ユーザーに対して、行ラベルのグループと区分の設定または変更は許可し、レベルの変更は禁止します。( |
5.7 ステップ5: データベース表またはスキーマへのポリシーの適用
Oracle Label Securityポリシーに対する認可および権限を付与した後は、それをデータベース表またはスキーマに適用できます。
- データベース表またはスキーマへのポリシーの適用について
表にポリシーを適用すると、ポリシーは自動的に有効になります。 - スキーマへのポリシーの適用
SA_POLICY_ADMIN.APPLY_TABLE_POLICY
ではポリシーがスキーマ内の表に適用され、SA_POLICY_ADMIN.APPLY_SCHEMA_POLICY
プロシージャではポリシーがスキーマ全体に適用されます。
親トピック: 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.8 ステップ6: 表の行へのポリシー・データ・ラベルの追加
ポリシー・データ・ラベルを表の行に追加する必要があります。
- 表の行へのポリシー・データ・ラベルの追加について
ポリシーを表に適用した後は、データ・ラベルを表の行に追加する必要があります。 - 表の行へのポリシー・データ・ラベルの追加
ポリシー・ラベルを追加する表を更新する必要があります。
親トピック: Oracle Label Securityポリシーの作成
5.8.1 表の行へのポリシー・データ・ラベルの追加について
ポリシーを表に適用した後は、データ・ラベルを表の行に追加する必要があります。
これらのラベルは、以前に表内に作成したポリシーのラベル列に格納されています。表を更新するユーザーには、ポリシーに対するFULL
セキュリティ権限が必要です。通常、このユーザーは表の所有者です。
親トピック: ステップ6: 表の行へのポリシー・データ・ラベルの追加
5.9 ステップ7: 監査の構成(オプション)
Oracle Label Securityポリシーについては、監査を有効にする場合は、統合監査ポリシーを作成する必要があります。
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューで表示できます。たとえば:SELECT OLS_PRIVILEGES_USED FROM UNIFIED_AUDIT_TRAIL
WHERE OLS_POLICY_NAME = 'OLS_ADMIN_POL' AND DBUSERNAME = 'PSMITH';
関連トピック
親トピック: Oracle Label Securityポリシーの作成
5.10 Oracle Label SecurityポリシーおよびOracle Flashback Data Archiveの使用
Oracle Label Securityポリシーは、Oracle Flashback Data Archive (FDA)では自動的には機能しません。
親トピック: Oracle Label Securityポリシーの作成
5.11 Enterprise Manager Cloud Controlを使用したOLSポリシーの作成
Oracle Enterprise Manager Cloud ControlでOracle Label Securityポリシーを作成できます。ただし、Cloud Controlを使用して監査ポリシーを作成することはできません。SQL*Plusを使用して統合監査ポリシーを作成する必要があります。
- Cloud Controlを使用したラベル・セキュリティ・ポリシー・コンテナの作成
Cloud ControlでOracle Label Securityポリシー・コンテナを作成できます。 - Cloud Controlを使用したポリシー・コンポーネントの作成
ポリシーのコンテナを作成し、その強制オプションを設定した後は、ポリシーに区分を作成できます。 - Cloud Controlを使用したポリシーのデータ・ラベルの作成
Cloud ControlでOracle Label Securityポリシーのデータ・ラベルを作成できます。 - Cloud Controlの使用によるポリシーの認可および権限付与
ユーザー作成プロセスの間に、ポリシーについてユーザーに対する認可および権限付与ができます。 - Cloud Controlを使用したトラステッド・プログラム・ユニットへの権限の付与
Cloud Controlで、トラステッド・プログラム・ユニットに権限を付与できます。 - Cloud Controlを使用したデータベース表へのポリシーの適用
Cloud Controlで、Oracle Label Securityポリシーをデータベース表に適用できます。 - Cloud Controlを使用した表の行へのポリシー・データ・ラベルの適用
Cloud Controlで、Oracle Label Securityポリシー・データ・ラベルを表の行に適用できます。
親トピック: Oracle Label Securityポリシーの作成
5.11.1 Cloud Controlを使用したラベル・セキュリティ・ポリシー・コンテナの作成
Cloud ControlでOracle Label Securityポリシー・コンテナを作成できます。
5.11.3 Cloud Controlを使用したポリシーのデータ・ラベルの作成
Cloud ControlでOracle Label Securityポリシーのデータ・ラベルを作成できます。
また、SA_LABEL_ADMIN
パッケージを使用してポリシーのラベル・コンポーネントを定義できます。
5.11.4 Cloud Controlの使用によるポリシーの認可および権限付与
ユーザー作成プロセスの間に、ポリシーについてユーザーに対する認可および権限付与ができます。
また、SA_USER_ADMIN
パッケージを使用してユーザーを認可する方法もあります。
5.11.5 Cloud Controlを使用したトラステッド・プログラム・ユニットへの権限の付与
Cloud Controlで、トラステッド・プログラム・ユニットに権限を付与できます。
また、SA_USER_ADMINパッケージを使用してトラステッド・プログラム・ユニットを認可する方法もあります。