DBMS_TSDP_PROTECT
パッケージは、DBMS_TSDP_MANAGEパッケージと組み合せて透過的機密データ保護(TSDP)ポリシーを構成するインタフェースを提供します。DBMS_TSDP_PROTECT
は、Enterprise Editionでのみ使用できます。
関連項目: 『Oracle Databaseセキュリティ・ガイド』 |
この章では、次の項目について説明します。
概要
セキュリティ・モデル
定数
DBMS_TSDP_PROTECT
パッケージを使用して、透過的機密データ保護ポリシーを作成し、そのポリシーを機密タイプに関連付けることによって保護を構成し、構成した保護を有効または無効にします。機密タイプは、DBMS_TSDP_MANAGEパッケージを使用して追加できます。
表171-2 DBMS_TSDP_PROTECTパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
TSDPポリシーを作成します。 |
|
TDSPポリシーを変更します。 |
|
TSDPポリシーを機密列タイプに関連付けるか、関連付けを解除します。 |
DISABLE_PROTECTION_COLUMNプロシージャ |
列の保護を無効にします。 |
DISABLE_PROTECTION_SOURCEプロシージャ |
機密列の真実のソースに基づいて保護を無効にします。 |
|
機密列タイプの保護を無効にします。 |
|
TDSPポリシーを削除します。 |
ENABLE_PROTECTION_COLUMNプロシージャ |
列の保護を有効にします。 |
ENABLE_PROTECTION_SOURCEプロシージャ |
機密列の真実のソースに基づいて保護を有効にします。 |
|
機密列タイプの保護を有効にします。 |
このプロシージャは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$null_condition);
パラメータ
表171-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;
このプロシージャは、既存のTDSPポリシーを変更します。
構文
DBMS_TSDP_PROTECT.ALTER_POLICY ( policy_name IN VARCHAR2, policy_enable_options IN FEATURE_OPTIONS, policy_apply_condition IN POLICY_CONDITION default TSDP$null_condition);
パラメータ
表171-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;
このプロシージャは、TSDPポリシーを機密列タイプに関連付けるか、関連付けを解除します。
構文
DBMS_TSDP_PROTECT.ASSOCIATE_POLICY ( policy_name IN VARCHAR2, sensitive_type IN VARCHAR2, associate IN BOOLEAN DEFAULT TRUE);
このプロシージャは、列の保護を無効にします。
構文
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);
このプロシージャは、TDSPポリシーまたはそのconditionとenable_optionsの組合せの1つを削除します。
構文
DBMS_TSDP_PROTECT.DROP_POLICY ( policy_name IN VARCHAR2, policy_apply_condition IN POLICY_CONDITION default TSDP$null_condition); DBMS_TSDP_PROTECT.DROP_POLICY ( policy_name IN VARCHAR2);
使用上の注意
policy_condition
と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;
このプロシージャは、列の保護を有効にします。
構文
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);