Consolidate data access control backoffice updates
This commit is contained in:
@@ -65,13 +65,6 @@ BEGIN
|
||||
require_runtime_object('CB_AGENT_CTX_PKG', 'PACKAGE BODY');
|
||||
require_runtime_object('CB_AGENT_DOC_VPD_FILTER', 'FUNCTION');
|
||||
require_runtime_object('CB_AGENT_CAN_READ_COLUMN', 'FUNCTION');
|
||||
require_runtime_object('CB_KB_CUST_NM_CLS', 'FUNCTION');
|
||||
require_runtime_object('CB_KB_RRN_CLS', 'FUNCTION');
|
||||
require_runtime_object('CB_KB_CLAIM_AMT_CLS', 'FUNCTION');
|
||||
require_runtime_object('CB_KB_PAID_AMT_CLS', 'FUNCTION');
|
||||
require_runtime_object('CB_KB_EXT_INSURER_CLS', 'FUNCTION');
|
||||
require_runtime_object('CB_KB_EXT_PRODUCT_GRP_CLS', 'FUNCTION');
|
||||
require_runtime_object('CB_KB_EXT_PRODUCT_TYPE_CLS', 'FUNCTION');
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -128,50 +121,28 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT === 4. Reapplying column NULL policies ===
|
||||
PROMPT === 4. Removing deprecated VPD column NULL policies ===
|
||||
-- Architecture rule: VPD filters rows only. Column masking is handled solely
|
||||
-- by ASO / DBMS_REDACT through 63_kb_aso_masking_rule_runtime.sql.
|
||||
DECLARE
|
||||
PROCEDURE replace_column_policy(
|
||||
p_object_name IN VARCHAR2,
|
||||
p_column_name IN VARCHAR2,
|
||||
p_policy_name IN VARCHAR2,
|
||||
p_function_name IN VARCHAR2
|
||||
) IS
|
||||
v_count NUMBER;
|
||||
PROCEDURE drop_column_policy(p_object_name IN VARCHAR2, p_policy_name IN VARCHAR2) IS
|
||||
BEGIN
|
||||
SELECT COUNT(*)
|
||||
INTO v_count
|
||||
FROM all_policies
|
||||
WHERE object_owner = 'POC_2'
|
||||
AND object_name = p_object_name
|
||||
AND policy_name = p_policy_name;
|
||||
IF v_count > 0 THEN
|
||||
DBMS_RLS.DROP_POLICY(
|
||||
object_schema => 'POC_2',
|
||||
object_name => p_object_name,
|
||||
policy_name => p_policy_name
|
||||
);
|
||||
END IF;
|
||||
DBMS_RLS.ADD_POLICY(
|
||||
object_schema => 'POC_2',
|
||||
object_name => p_object_name,
|
||||
policy_name => p_policy_name,
|
||||
function_schema => 'ADMIN',
|
||||
policy_function => p_function_name,
|
||||
statement_types => 'SELECT',
|
||||
policy_type => DBMS_RLS.DYNAMIC,
|
||||
sec_relevant_cols => p_column_name,
|
||||
sec_relevant_cols_opt => DBMS_RLS.ALL_ROWS,
|
||||
enable => TRUE
|
||||
DBMS_RLS.DROP_POLICY(
|
||||
object_schema => 'POC_2', object_name => p_object_name, policy_name => p_policy_name
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
-- A missing policy is already the desired state. Do not hide other errors.
|
||||
IF SQLCODE != -28102 THEN RAISE; END IF;
|
||||
END;
|
||||
BEGIN
|
||||
replace_column_policy('KB_CUSTOMERS', 'CUST_NM', 'KB_CUST_NM_CLS_POLICY', 'CB_KB_CUST_NM_CLS');
|
||||
replace_column_policy('KB_CUSTOMERS', 'RRN_MASKED', 'KB_RRN_CLS_POLICY', 'CB_KB_RRN_CLS');
|
||||
replace_column_policy('KB_CLAIMS', 'CLAIM_AMT', 'KB_CLAIM_AMT_CLS_POLICY', 'CB_KB_CLAIM_AMT_CLS');
|
||||
replace_column_policy('KB_CLAIMS', 'PAID_AMT', 'KB_PAID_AMT_CLS_POLICY', 'CB_KB_PAID_AMT_CLS');
|
||||
replace_column_policy('KB_EXTERNAL_HOLDINGS', 'EXT_INSURER', 'KB_EXT_INSURER_CLS_POLICY', 'CB_KB_EXT_INSURER_CLS');
|
||||
replace_column_policy('KB_EXTERNAL_HOLDINGS', 'EXT_PRODUCT_GRP', 'KB_EXT_PRODUCT_GRP_CLS_POLICY', 'CB_KB_EXT_PRODUCT_GRP_CLS');
|
||||
replace_column_policy('KB_EXTERNAL_HOLDINGS', 'EXT_PRODUCT_TYPE', 'KB_EXT_PRODUCT_TYPE_CLS_POLICY', 'CB_KB_EXT_PRODUCT_TYPE_CLS');
|
||||
drop_column_policy('KB_CUSTOMERS', 'KB_CUST_NM_CLS_POLICY');
|
||||
drop_column_policy('KB_CUSTOMERS', 'KB_RRN_CLS_POLICY');
|
||||
drop_column_policy('KB_CLAIMS', 'KB_CLAIM_AMT_CLS_POLICY');
|
||||
drop_column_policy('KB_CLAIMS', 'KB_PAID_AMT_CLS_POLICY');
|
||||
drop_column_policy('KB_EXTERNAL_HOLDINGS', 'KB_EXT_INSURER_CLS_POLICY');
|
||||
drop_column_policy('KB_EXTERNAL_HOLDINGS', 'KB_EXT_PRODUCT_GRP_CLS_POLICY');
|
||||
drop_column_policy('KB_EXTERNAL_HOLDINGS', 'KB_EXT_PRODUCT_TYPE_CLS_POLICY');
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user