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);