Oracle Data Masking Version 11.2.0.4 |
---|
General Information | |||||||||||||||||||
Library Note |
|
||||||||||||||||||
Files Directory Path | {$ORACLE_HOME}/sysman/admin/emdrep/sql/db/latest/masking | ||||||||||||||||||
Build Files |
|
||||||||||||||||||
Data Dictionary Objects (owned by SYSMAN) |
|
||||||||||||||||||
Data Dictionary Objects (owned by DBSNMP) |
|
||||||||||||||||||
Data Masking Demo | |||||||||||||||||||
One thing I want to make very clear before I start work on this demo ... the point of data masking
is to have an easy to utilize tool that performs a complex task without manual intervention. That said: The point of being an Oracle ACE Director is to become knowledgeable so that one can speak with some level of authority about Oracle products. Thus this demo is my self-education exercise and, perhaps, will be yours too but it is not a substitute for running data masking in production from the OEM Grid/Cloud interface. |
|||||||||||||||||||
Create demo table and load data for masking We will start with a realistic table with lots of personal information (PII) and opportunities to violate SarbOx, HIPAA, and PCI DSS. |
CREATE TABLE rx_customers ( |
||||||||||||||||||
Create sample data | INSERT INTO rx_customers |
||||||||||||||||||
DBSNMP.DM_FMTLIB | |||||||||||||||||||
A substantial number of additional data masking functions are in this package and handle the many other possible credit card types, American Express, Diners, Discover, JBC, Mastercard, etc. as well as specific functions for each US state and Canadian province. | |||||||||||||||||||
Canada Phone Number p_buff must be a string of numbers 7 to 10 digits long and beginning with a value between 1 and 25 |
mgmt_dm_gen_ph_canada( |
||||||||||||||||||
conn uwclass/uwclass |
|||||||||||||||||||
Canada Phone Number | mgmt_dm_gen_ph_canada_fh( |
||||||||||||||||||
conn uwclass/uwclass |
|||||||||||||||||||
Canada Social Insurance Number The valueof p_buff is the leading value in the SIN |
mgmt_dm_gen_cn_sin( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_cn_sin('A', 'A', NULL) |
|||||||||||||||||||
Canada Social Insurance Number | mgmt_dm_gen_cn_sin_fh( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_cn_sin_fh('A', 'A', NULL) |
|||||||||||||||||||
Canada Social Insurance Number | mgmt_dm_gen_cn_sin_fs( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_cn_sin_fs('A', 'A', NULL) |
|||||||||||||||||||
ISBN Numbers MGMT_DM_GEN_ISBN10 MGMT_DM_GEN_ISBN10_FH MGMT_DM_GEN_ISBN13 MGMT_DM_GEN_ISBN13_FH |
|||||||||||||||||||
TBD | |||||||||||||||||||
North American Phone Number | mgmt_dm_gen_ph_na(... |
||||||||||||||||||
TBD | |||||||||||||||||||
North American Phone Number | mgmt_dm_gen_ph_na_fh(... |
||||||||||||||||||
TBD | |||||||||||||||||||
State of California Phone Number | mgmt_dm_gen_ph_usa_ca(... |
||||||||||||||||||
TBD | |||||||||||||||||||
State of California Phone Number | mgmt_dm_gen_ph_usa_ca_fh(... |
||||||||||||||||||
TBD | |||||||||||||||||||
UK National Insurance Number | mgmt_dm_gen_uk_nin_fh(... |
||||||||||||||||||
TBD | |||||||||||||||||||
UPC Number | mgmt_dm_gen_upc(... |
||||||||||||||||||
TBD | |||||||||||||||||||
UPC Number | mgmt_dm_gen_upc_fh(... |
||||||||||||||||||
TBD | |||||||||||||||||||
US Phone Number | mgmt_dm_gen_ph_usa(... |
||||||||||||||||||
TBD | |||||||||||||||||||
US Phone Number | mgmt_dm_gen_ph_usa_fh(... |
||||||||||||||||||
TBD | |||||||||||||||||||
US Social Security Number Generate without hyphens Reading the source code what I see is that the first two parameters are irrelevant and the value of the third becomes the leading values of the returned SSN |
mgmt_dm_gen_ssn( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_ssn('A', 'A', '52') |
|||||||||||||||||||
US Social Security Number Generate with hyphens Reading the source code what I see is that the first two parameters are irrelevant and the value of the third becomes the leading values of the returned SSN |
mgmt_dm_gen_ssn_fh( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_ssn_fh('A', 'A', '6275') |
|||||||||||||||||||
Visa Credit Card Generate without hyphens or spaces Reading the source code what I see is that the first two parameters are irrelevant and the value of the third becomes a portion of the new number |
mgmt_dm_gen_vc( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_vc('A', 'A', NULL) |
|||||||||||||||||||
Visa Credit Card Generate with hyphens between quartets Reading the source code what I see is that the first two parameters are irrelevant and the value of the third becomes a portion of the new number |
mgmt_dm_gen_vc_fh( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_vc_fh('A', 'A', NULL) |
|||||||||||||||||||
Visa Credit Card Generate with hyphens between quartets Reading the source code what I see is that the first two parameters are irrelevant and the value of the third becomes a portion of the new number |
mgmt_dm_gen_vc_fs( |
||||||||||||||||||
SELECT dbsnmp.dm_fmtlib.mgmt_dm_gen_vc_fs('A', 'A', NULL) |
Related Topics |
Database Security |
DBMS_CRYPTO |
DBMS_RANDOM |
Transparent Data Encryption |
What's New In 21c |
What's New In 23c |
This site is maintained by Dan Morgan. Last Updated: | This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2023 Daniel A. Morgan All Rights Reserved | |||||||||
|
||||||||||