Dynamic Data Masking
- Dynamic Data Masking H2L
- All Products
select FIRST_NAME,LAST_NAME,DEPARTMENT_ID from (SELECT FIRST_NAME,LAST_NAME||'.' LAST_NAME, DEPARTMENT_ID FROM EMPLOYEES WHERE LAST_NAME LIKE '%S%' OR FIRST_NAME LIKE '%JOHN%' GROUP BY FIRST_NAME,LAST_NAME,DEPARTMENT_ID HAVING COUNT(DEPARTMENT_ID) >= 1 AND LAST_NAME != 'Brown' ORDER BY FIRST_NAME,LAST_NAME,DEPARTMENT_ID) A GROUP BY first_name,last_name,DEPARTMENT_ID Having COUNT(DEPARTMENT_ID) >= 1 AND LAST_NAME != 'Brown' ORDER BY FIRST_NAME,LAST_NAME,DEPARTMENT_ID
Keep Original Number of Rows
| Old Masking Statement Modification
| New Masking Statement Modification
| Masking Action Functionality
|
|---|---|---|---|
N
| select substr("FIRST_NAME",1,2) "FIRST_NAME" , substr("LAST_NAME",1,2)||'zzzz' "LAST_NAME" , DEPARTMENT_ID from ( SELECT substr("FIRST_NAME",1,2) "FIRST_NAME" ,substr("LAST_NAME",1,2)||'zzzz' || '.' LAST_NAME , DEPARTMENT_ID FROM EMPLOYEES WHERE LAST_NAME LIKE '%S%' OR FIRST_NAME LIKE '%JOHN%' GROUP BY substr("FIRST_NAME",1,2) ,substr("LAST_NAME",1,2)||'zzzz' , DEPARTMENT_ID HAVING COUNT ( DEPARTMENT_ID ) >= 1 AND substr("LAST_NAME",1,2)||'zzzz' != 'Brown' ORDER BY substr("FIRST_NAME",1,2) ,substr("LAST_NAME",1,2)||'zzzz' , DEPARTMENT_ID ) A GROUP BY substr("FIRST_NAME",1,2) ,substr("LAST_NAME",1,2)||'zzzz' , DEPARTMENT_ID HAVING COUNT ( DEPARTMENT_ID ) >= 1 AND substr("LAST_NAME",1,2)||'zzzz' != 'Brown' ORDER BY substr("FIRST_NAME",1,2) , substr("LAST_NAME",1,2)||'zzzz' , DEPARTMENT_ID
| select substr(FIRST_NAME ,1,2) FIRST_NAME , LAST_NAME LAST_NAME , DEPARTMENT_ID from ( SELECT FIRST_NAME , substr(LAST_NAME ,1,2)||'zzzz' || '.' LAST_NAME , DEPARTMENT_ID FROM EMPLOYEES WHERE LAST_NAME LIKE '%S%' OR FIRST_NAME LIKE '%JOHN%' GROUP BY FIRST_NAME , LAST_NAME , DEPARTMENT_ID HAVING COUNT ( DEPARTMENT_ID )>= 1 AND LAST_NAME != 'Brown' ORDER BY FIRST_NAME , LAST_NAME , DEPARTMENT_ID ) A GROUP BY substr(first_name ,1,2) , last_name , DEPARTMENT_ID HAVING COUNT ( DEPARTMENT_ID ) >= 1 AND LAST_NAME != 'Brown' ORDER BY substr(FIRST_NAME ,1,2) , LAST_NAME , DEPARTMENT_ID
| The old masking functionality resulted in incorrect masking, because columns are masked twice, in both the outer and inner queries.
Inner Query (for all the columns):
Outer Query (only for columns masked in the outer query):
New masking functionality:
If candidate columns are not masked in the inner query, then they are masked in the outer query, as per the following:
Inner Query (for all the columns):
Outer Query (only for columns masked in the outer query):
|
Y
| select substr("FIRST_NAME",1,2) "FIRST_NAME" , substr("LAST_NAME",1,2)||'zzzz' "LAST_NAME" , DEPARTMENT_ID from ( SELECT substr("FIRST_NAME",1,2) "FIRST_NAME" ,substr("LAST_NAME",1,2)||'zzzz' || '.' LAST_NAME , DEPARTMENT_ID FROM EMPLOYEES WHERE LAST_NAME LIKE '%S%' OR FIRST_NAME LIKE '%JOHN%' GROUP BY FIRST_NAME , LAST_NAME , DEPARTMENT_ID HAVING COUNT ( DEPARTMENT_ID ) >= 1 AND LAST_NAME != 'Brown' ORDER BY FIRST_NAME , LAST_NAME , DEPARTMENT_ID ) A GROUP BY first_name , last_name , DEPARTMENT_ID HAVING COUNT (DEPARTMENT_ID ) >= 1 AND LAST_NAME != 'Brown' ORDER BY FIRST_NAME , LAST_NAME , DEPARTMENT_ID
| select substr(FIRST_NAME ,1,2) FIRST_NAME , LAST_NAME LAST_NAME , DEPARTMENT_ID from ( SELECT FIRST_NAME , substr(LAST_NAME ,1,2)||'zzzz' || '.' LAST_NAME , DEPARTMENT_ID FROM EMPLOYEES WHERE LAST_NAME LIKE '%S%' OR FIRST_NAME LIKE '%JOHN%' GROUP BY FIRST_NAME , LAST_NAME , DEPARTMENT_ID HAVING COUNT ( DEPARTMENT_ID ) >= 1 AND LAST_NAME != 'Brown' ORDER BY FIRST_NAME , LAST_NAME , DEPARTMENT_ID ) A GROUP BY first_name , last_name , DEPARTMENT_ID HAVING COUNT ( DEPARTMENT_ID )>= 1 AND LAST_NAME != 'Brown' ORDER BY FIRST_NAME ,LAST_NAME , DEPARTMENT_ID
| The old masking functionality resulted in incorrect masking, because columns are masked twice, in both the outer and inner queries.
Inner Query (for all the columns):
Outer Query (only for columns masked in the outer query):
New masking functionality:
If candidate columns are not masked in the inner query, then they are masked in the outer query, as per the following:
Inner Query (for all the columns):
Outer Query (only for columns masked in the outer query):
|