179 DBMS_TSDP_PROTECT
DBMS_TSDP_PROTECT
パッケージは、DBMS_TSDP_MANAGE パッケージと組み合せて透過的機密データ保護(TSDP)ポリシーを構成するインタフェースを提供します。
DBMS_TSDP_PROTECT
は、Enterprise Editionでのみ使用できます。
この章のトピックは、次のとおりです:
179.1 DBMS_TSDP_PROTECTの概要
DBMS_TSDP_PROTECT
パッケージを使用して、透過的機密データ保護ポリシーを作成し、そのポリシーを機密タイプに関連付けることによって保護を構成し、構成した保護を有効または無効にします。
機密タイプは、 DBMS_TSDP_MANAGE パッケージを使用して追加できます。
179.2 DBMS_TSDP_PROTECTのセキュリティ・モデル
すべてのプロシージャは、実行者の権限で実行されます。通常、セキュリティ管理者がこのパッケージのEXECUTE
権限を持っている必要があります。
179.3 DBMS_TSDP_PROTECTの定数
DBMS_TSDP_PROTECT
は、パラメータ値の指定時に使用するTSDP_PARAM_MAX
定数を定義します。
この定数を、次の表に示します。
表179-1 DBMS_TDSP_PROTECTの定数 - 圧縮タイプ
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
4000 |
|
179.4 DBMS_TSDP_PROTECTのデータ構造
DBMS_TSDP_PROTECT
パッケージは、2つのTABLE
タイプを定義します。
179.4.1 FEATURE_OPTIONS表タイプ
次のタイプはVARCHAR2(TSDP_PARAM_MAX)
の連想配列で、これはVARCHAR2(M_IDEN)
で索引付けされています。
構文
TYPE FEATURE_OPTIONS IS TABLE OF VARCHAR2(TSDP_PARAM_MAX) INDEX BY VARCHAR2(M_IDEN);
179.5 DBMS_TSDP_PROTECTサブプログラムの要約
この表は、DBMS_TSDP_PROTECT
サブプログラムを示し、簡単に説明しています。
表179-2 DBMS_TSDP_PROTECTパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
TSDPポリシーを作成します。 |
|
TDSPポリシーを変更します。 |
|
TSDPポリシーを機密列タイプに関連付けるか、関連付けを解除します。 |
|
列の保護を無効にします。 |
|
機密列の真実のソースに基づいて保護を無効にします。 |
|
機密列タイプの保護を無効にします。 |
|
TDSPポリシーを削除します。 |
|
列の保護を有効にします。 |
|
機密列の真実のソースに基づいて保護を有効にします。 |
|
機密列タイプの保護を有効にします。 |
179.5.1 ADD_POLICYプロシージャ
このプロシージャはTDSPポリシーを作成します。
構文
DBMS_TSDP_PROTECT.ADD_POLICY ( policy_name IN VARCHAR2, security_feature IN PLS_INTEGER, policy_enable_options IN FEATURE_OPTIONS, policy_apply_condition IN POLICY_CONDITION DEFAULT TSDP$default_condition);
パラメータ
表179-3 ADD_POLICYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するポリシーの名前。この識別子の最大長は |
|
ポリシーが関連付けられているOracleのセキュリティ機能。指定できる値は次のとおりです。
|
|
|
|
対応する 例:
|
使用上のノート
TDSPポリシーを作成するには、プロシージャを無名ブロックに含める必要があります。この無名ブロックは、ポリシーが有効になっているときに、テストでポリシーおよび条件を使用するセキュリティ機能のタイプを定義します。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
例
ポリシーPARTIAL_MASK_POLICY
を作成します。
DECLARE redact_feature_options DBMS_TSDP_PROTECT.FEATURE_OPTIONS; policy_conditions DBMS_TSDP_PROTECT.POLICY_CONDITIONS; BEGIN redact_feature_options ('expression') := 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') =''APPUSER'''; redact_feature_options ('function_type') := 'DBMS_REDACT.PARTIAL'; redact_feature_options ('function_parameters') := 'STR, VVVVVVVVV,VVVVVVVVV, *, 1, 6'; policy_conditions(DBMS_TSDP_PROTECT.DATATYPE) := 'VARCHAR2'; DBMS_TSDP_PROTECT.ADD_POLICY ('PARTIAL_MASK_POLICY', DBMS_TSDP_PROTECT.REDACT, redact_feature_options, policy_conditions); END;
179.5.2 ALTER_POLICYプロシージャ
このプロシージャは、既存のTDSPポリシーを変更します。
構文
DBMS_TSDP_PROTECT.ALTER_POLICY ( policy_name IN VARCHAR2, policy_enable_options IN FEATURE_OPTIONS, policy_apply_condition IN POLICY_CONDITION default TSDP$default_condition);
パラメータ
表179-4 ALTER_POLICYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更するポリシーの名前。 |
|
セキュリティ機能に対応するパラメータと値のペアによって初期化されます。 |
|
対応する 例:
|
使用上のノート
-
policy_apply_condition
がポリシーの既存の条件と一致する場合、対応する有効オプションはpolicy_enable_options
で更新されます。 -
policy_apply_condition
がポリシーの既存のどの条件とも一致しない場合、policy_enable_options
とpolicy_apply_condition
の組合せがポリシーに追加されます。
例
policy_apply_condition
とpolicy_enable_options
の新しい組合せを、既存のポリシーPARTIAL_MASK_POLICY
に追加します。
DECLARE redact_feature_options DBMS_TSDP_PROTECT.FEATURE_OPTIONS; policy_conditions DBMS_TSDP_PROTECT.POLICY_CONDITIONS; BEGIN redact_feature_options ('expression') := 'SYS_CONTEXT(''USERENV'',''SESSION_USER'')=''APPUSER'''; redact_feature_options ('function_type') := 'DBMS_REDACT.PARTIAL'; redact_feature_options ('function_parameters') := 'STR, VVVVVVVVV,VVVVVVVVV, *, 1, 6'; policy_conditions (DBMS_TSDP_PROTECT.DATATYPE) := 'VARCHAR2'; DBMS_TSDP_PROTECT.ALTER_POLICY ('PARTIAL_MASK_POLICY', redact_feature_options, policy_conditions); END;
179.5.3 ASSOCIATE_POLICYプロシージャ
このプロシージャは、TSDPポリシーを機密列タイプに関連付けるか、関連付けを解除します。
構文
DBMS_TSDP_PROTECT.ASSOCIATE_POLICY ( policy_name IN VARCHAR2, sensitive_type IN VARCHAR2, associate IN BOOLEAN DEFAULT TRUE);
パラメータ
表179-5 ASSOCIATE_POLICYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
TDSPポリシー名。 |
|
機密列タイプの名前。 |
|
関連付けまたは関連解除。TRUEは関連付けを示します。 |
使用上のノート
ポリシーと機密列タイプの両方がデータベースに存在する必要があります。
例
PARTIAL_MASK_POLICY
をSSN_TYPE
に関連付けます。
DBMS_TSDP_PROTECT.ASSOCIATE_POLICY ('PARTIAL_MASK_POLICY', 'SSN_TYPE');
179.5.4 DISABLE_PROTECTION_COLUMNプロシージャ
このプロシージャは、列の保護を無効にします。
構文
DBMS_TSDP_PROTECT.DISABLE_PROTECTION_COLUMN ( schema_name IN VARCHAR2 DEFAULT '%', table_name IN VARCHAR2 DEFAULT '%', column_name IN VARCHAR2 DEFAULT '%', policy_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表179-6 DISABLE_PROTECTION_COLUMNプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
列を含むスキーマの名前。 |
|
列を含む表。 |
|
列名。 |
|
ポリシー名(オプション)。指定すると、このポリシーのみが無効になります。 |
例
名前が%PAYROLL%
、表名がEMP%
、列名がSAL%
のスキーマにある、列の対応する機密列タイプに関連付けられたTSDPポリシーを無効にします。
EXEC DBMS_TSDP_PROTECT.DISABLE_PROTECTION_COLUMN ('%PAYROLL%', 'EMP%', 'SAL%');
179.5.5 DISABLE_PROTECTION_SOURCEプロシージャ
このプロシージャは、機密列の真実のソースに基づいて保護を無効にします。
構文
DBMS_TSDP_PROTECT.DISABLE_PROTECTION_SOURCE ( discovery_sourcename IN VARCHAR2);
パラメータ
表179-7 DISABLE_PROTECTION_SOURCEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
検出ソース名。これはアプリケーション・データ・モデル(ADM)名またはデータベース・ユーザーです。 |
例
ADM_Demo
に対応するすべての列の保護を無効にします。
DBMS_TSDP_PROTECT.DISABLE_PROTECTION_SOURCE ('ADM_Demo');
179.5.6 DISABLE_PROTECTION_TYPEプロシージャ
このプロシージャは、機密列タイプの保護を無効にします。
構文
DBMS_TSDP_PROTECT.DISABLE_PROTECTION_TYPE ( sensitive_type IN VARCHAR2);
パラメータ
表179-8 DISABLE_PROTECTION_TYPEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
機密列タイプの名前。 |
例
SSN_TYPE
で識別されたすべての列の保護を無効にします。
DBMS_TSDP_PROTECT.DISABLE_PROTECTION_TYPE ('SSN_TYPE');
179.5.7 DROP_POLICYプロシージャ
このプロシージャは、TDSPポリシーまたはそのconditionとenable_optionsの組合せの1つを削除します。
構文
DBMS_TSDP_PROTECT.DROP_POLICY ( policy_name IN VARCHAR2, policy_apply_condition IN POLICY_CONDITIONS); DBMS_TSDP_PROTECT.DROP_POLICY ( policy_name IN VARCHAR2);
パラメータ
表179-9 DROP_POLICYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するポリシーの名前。 |
|
関連条件で初期化されます。 |
使用上のノート
-
policy_conditions
とpolicy_enable_options
の組合せは、policy_apply_condition
パラメータを指定することによってTSDPポリシーから削除できます。デフォルトのconditionとデフォルトのoptionsの組合せも削除できます(ポリシーに存在する場合)。そのためには、DBMS_TSDP_PROTECT.POLICY_CONDITION
タイプの空の連想配列を渡します。 -
削除するconditionとenable_optionsの組合せがポリシーの最後のconditionとenable_optionsの組合せの場合、ポリシー自体が削除されます。
-
ポリシーは、
policy_name
のみを取るプロシージャのオーバーロードを使用することによって完全に削除できます。 -
ポリシーまたはそのconditionの1つは、ポリシーがどの機密列タイプにも関連付けられていない場合にのみ削除できます。これは、削除されるポリシーがどの列(オブジェクト)でも有効になっていないことも意味します。
例
特定のconditionに基づいたconditionとenable_optionsの組合せの削除:
DECLARE policy_conditions DBMS_TSDP_PROTECT.POLICY_CONDITIONS; BEGIN policy_conditions (DBMS_TSDP_PROTECT.DATATYPE) := 'VARCHAR2'; DBMS_TSDP_PROTECT.DROP_POLICY ('PARTIAL_MASK_POLICY', policy_conditions); END;
デフォルトのconditionとenable_optionsの組合せは、DBMS_TSDP_PROTECT.POLICY_CONDITIONS
タイプの連想配列をpolicy_apply_condition
パラメータに渡すことによって削除できます。
DECLARE policy_conditions DBMS_TSDP_PROTECT.POLICY_CONDITIONS; BEGIN DBMS_TSDP_PROTECT.DROP_POLICY ('redact_partial_cc', policy_conditions); END;
TSDPポリシーの削除:
BEGIN DBMS_TSDP_PROTECT.DROP_POLICY( policy_name => 'PARTIAL_MASK_POLICY'); END;
179.5.8 ENABLE_PROTECTION_COLUMNプロシージャ
このプロシージャは、列の保護を有効にします。
構文
DBMS_TSDP_PROTECT.ENABLE_PROTECTION_COLUMN ( schema_name IN VARCHAR2 DEFAULT '%', table_name IN VARCHAR2 DEFAULT '%', column_name IN VARCHAR2 DEFAULT '%', policy_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表179-10 ENABLE_PROTECTION_COLUMNプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
列を含むスキーマの名前。 |
|
列を含む表。 |
|
列名。 |
|
ポリシー名(オプション)。指定すると、このポリシーのみが有効になります。 |
使用上のノート
-
このプロシージャを使用して有効にできるのは、機密列の機密列タイプに関連付けられたTSDPポリシーのみです。
-
LIKE
条件は、schema_name
、table_name
およびcolumn_name
で使用されます。AND
セマンティクスが続きます。
例
名前が%PAYROLL%
、表名がEMP%
、列名がSAL%
のスキーマにある、列の対応する機密列タイプに関連付けられたTSDPポリシーを有効にします。
DBMS_TSDP_PROTECT.ENABLE_PROTECTION_COLUMN ('%PAYROLL%', 'EMP%', 'SAL%');
179.5.9 ENABLE_PROTECTION_SOURCEプロシージャ
このプロシージャは、機密列の真実のソースに基づいて保護を有効にします。
構文
DBMS_TSDP_PROTECT.ENABLE_PROTECTION_SOURCE ( discovery_sourcename IN VARCHAR2);
パラメータ
表179-11 ENABLE_PROTECTION_SOURCEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
検出ソース名。これはアプリケーション・データ・モデル(ADM)名またはデータベース・ユーザーです。 |
例
ADM_Demo
に対応するすべての列の保護を有効にします。
DBMS_TSDP_PROTECT.ENABLE_PROTECTION_SOURCE ('ADM_Demo');
179.5.10 ENABLE_PROTECTION_TYPEプロシージャ
このプロシージャは、機密列タイプの保護を有効にします。
構文
DBMS_TSDP_PROTECT.ENABLE_PROTECTION_TYPE ( sensitive_type IN VARCHAR2);
パラメータ
表179-12 ENABLE_PROTECTION_TYPEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
機密列タイプの名前。 |
例
SSN_TYPE
で識別されたすべての列の保護を有効にします。
DBMS_TSDP_PROTECT.ENABLE_PROTECTION_TYPE ('SSN_TYPE');