Version 1.1.1
 —  Data Masking  —

Masking Functions and Parameters

Each of the supported masking functions and their required parameters are detailed in the following pages:


ADD

Add a fixed value in Parm1. The ADD function will also add the fixed value in Parm1 to dates in a character field.

Required parameters: Parm1.
Applies to database types: Numeric.
Example:

ship_to_address_ID in table orders will have a value of 5 added to existing.

graphics/GTSDM_img_32.jpg

Top of page

ADDPERCENT

Adds a fixed percentage value in Parm1 to the original value.

Required parameters: Parm1.
Applies to database types: Numeric.
Example:

customer_ID in table orders will have a value of 10% added to existing value.

graphics/GTSDM_img_33.jpg

Top of page

ADDRANDOM

Adds a random value between Parm1 and Parm2 to the existing value.

Required parameters: Parm1 and Parm2.
Applies to database types: Numeric.
Example:

unit_price in table order_items will have a value between -4 and 4 added to the existing value.

graphics/GTSDM_img_34.jpg

Top of page

ADDRANDOMDAYS

Adds a random number of days between Parm1 and Parm2 to the existing value.

Required parameters: Parm1 and Parm2.
Applies to database types: Date, Datetime.
Example:

The test_date column in table credit_cards will have between 10 and 100 days taken off the existing value for that column.

graphics/GTSDM_img_35.jpg

Top of page

ADDRANDOMHOURS

Adds a random number of hours between Parm1 and Parm2 to the existing value.

Required parameters: Parm1 and Parm2.
Applies to database types: Date, Datetime.
Example:

creation_date will have between 6 and 9 hours added to existing value.

graphics/GTSDM_img_36.jpg

Top of page

ADDRANDOMMINUTES

Adds a random number of minutes between Parm1 and Parm2 to the existing value.

Required parameters: Parm1 and Parm2.
Applies to database types: Date, Datetime.
Example:

creation_date will have between 30 and 45 minutes added to existing value.

graphics/GTSDM_img_37.jpg

Top of page

ADDRANDOMSECONDS

Adds a random number of seconds between Parm1 and Parm2 to the existing value.

Required parameters: Parm1 and Parm2.
Applies to database types: Date, Datetime.
Example:

creation_date will have between 4 and 13 seconds taken off the existing value.

graphics/GTSDM_img_38.jpg

Top of page

ADDRANDOMYEARS

Adds a random number of years between Parm1 and Parm2 to the existing value.

Required parameters: Parm1 and Parm2.
Applies to database types: Date, Datetime.
Example:

CREATION_DATE in table OPTIONS_BASE will have between 6 and 9 years added to the existing value.

graphics/GTSDM_img_38a.jpg

Top of page

AESDECRYPT

Creates a decrypted version of a column based on the key used in Parm1. The column must have been previously encrypted using the AESENCRYPT function with same Parm1 value.

Required parameters: Parm1, which is the encryption key.

Note:
The encryption key can not be more than 16 characters in length.

Applies to database types: Character.
Example:

The value 17 Windmill St is decrypted to 4e 23 11 6a 61 30 27 0d 10 f1 08 56 fc dc 13 dc.

Top of page

AESENCRYPT

Creates an encrypted version of a column using an AES (Advanced Encryption Standard) algorithm and the key in Parm1.

Note:
The output value will be longer than the original.

Required parameters: Parm1, which is the encryption key.

Note:
The encryption key can not be more than 16 characters in length.

Applies to database types: Character.
Example: The value 17 Windmill St is encrypted to 33 6f 53 90 f9 7b c3 aa 09 e9 11 aa 2b d9 ba bd.

Top of page

AND

The AND function, in conjunction with WHERE, allows you to restrict your obfuscation to only certain rows. For example, you can mask male customers differently based on the MALE_NAMES AND PERSON_TYPE_CODE columns. The ADD function must be used on a separate row to the WHERE function.

Note:
The ADD function is for masking flat files only as there is no SQL file.

Required parameters: Parm1. This is an SQL WHERE clause.
Example:

graphics/GTSDM_img_39.jpg

Top of page

CHARHASH

Converts a character hashed value from the input (PARM1 must be set to the method MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512).

Required parameters: Parm1.
Applies to database types: Character.
Example:

The value COUP in the discount_type_code column will be masked to 9ccff020641cc1a68770161075cf33.

graphics/GTSDM_img_40.jpg

Top of page

CHECKRUT

Social security numbers in Chile (RUT) follow a special format with a check digit at the end which is dependent on the first 8 digits of the number. CHECKRUT must have a Parm1 value – this is the name of another column in the same table which contains 2 or more RUT numbers.

Required parameters: Parm1.
Applies to database types: Numeric.

Top of page

DOB

Adjust a date of birth by plus or minus Parm1. The age will NOT be adjusted relative to the current date or the override CDATE in the options file.

Required parameters: Parm1.
Applies to database types: Date.
Example:

The age 52 (DOB 9/5/1958) will remain at 52 but could be adjusted by, for example, between 10 and 30 days to 16/5/1958.

graphics/GTSDM_img_41.jpg

Top of page

DOD

Adjust a date of death by plus or minus Parm1. The number of years since death will NOT be adjusted relative to the current date or override the CDATE in the options file.

Required parameters: Parm1.
Applies to database types: Date.
Example:

The date of death 10/9/2009 will remain at 1 year but could be adjusted by, between Parm1 and Parm2 to, for example, 7/9/2009.

graphics/GTSDM_img_41a.jpg

Top of page

DECRYPT

Creates a decrypted version of a column based on the key in Parm1.

Required parameters: Parm1.
Applies to database types: Character.
Example: e34;;= could be converted to ABC.

Top of page

DELETE

Deletes ALL data for the table, optionally using SQL in Parm1.

Required parameters: Parm1 (Optional).
Applies to database types: Character, Date and Numeric.
Example:

All data in table orders will be deleted.

graphics/GTSDM_img_42.jpg

Top of page

EMAIL

Masks the column with an auto-generated e-mail ID.

Required parameters: None.
Applies to database types: Character.
Example:

Column named email will be masked by auto-email IS.

graphics/GTSDM_img_43.jpg

Top of page

ENCRYPT

Creates an encrypted version of a column based on the key in Parm1.

Required parameters: Parm1.
Applies to database types: Character.
Example: ABC could be converted to e34;;=.

Note:
The encrypted version will be longer than the original value, so you need to ensure the column width can accommodate the new value.

Top of page

FIXED

Masks the column values with the fixed value provided in Parm1.

Required parameters: Parm1. This is the fixed value.
Applies to database types: Character, Date and Numeric.
Example:

Column ACCOUNT_NUMBER will be masked with the fixed value 11100022 and column PERSON_TYPE_CODE will be masked with the value CUST.

graphics/GTSDM_img_44.jpg

Note:
If you wish to set the value to null, enter the string <NULL> - FIXED,<NULL>. If you wish to maintain a space, enter the string <SPACE> - FIXED,<SPACE>.

Top of page

FORMATMASK

Masks a character value - only changing lowercase, uppercase and numeric characters and leaving all others in place, i.e. maintaining the original format. It also guarantees uniqueness, and so can be applied to key columns.

Required parameters:

Parm1. This is the mask key.

The mask key needs to be a series of alphanumeric characters - for example AQgt76Wr.

Applies to database types: Alphanumeric.
Example: Entering the mask key K123abc-/345 will produce a masked output e.g. L543dvs-/201

Top of page

GENCARD, MASTERCARD, VISACARD

Masks the column values with the 15 and 16 digit CREDIT CARD Numbers. You can also specify the card type you’d like to use (i.e. American Express, Mastercard, Credit Card).

Note:
AMEX card numbers are 15 digits long.

Required parameters: None.
Applies to database types: Character and numeric.
Example:

graphics/GTSDM_img_45.jpg

Top of page

GUID

Generates a globally unique identifier - this will be a 36 character value.

Required parameters: None.
Applies to database types: Character.
Example:

graphics/GTSDM_img_46.jpg

Top of page

HASH

Returns HASH Values for the integer fields.

Required parameters:

Parm1, Parm2 (Optional).

Parm1 is the seed value for the hash and Parm2 gives the maximum value allowed.

Applies to database types: Integer.
Example:

Here numbers column of table TEST1 have been hashed with the seed value of 35 and maximum allowed value of up to 5 digits.

graphics/GTSDM_img_47.jpg

Top of page

HASHPHONE

Maintains the first 4 digits of a phone number and hashes the rest based on a fixed key.

Required parameters: None.
Applies to database types: Number.
Example:

graphics/GTSDM_img_47a.jpg

Top of page

HASHRUT

Takes an existing RUT number (Chilean Social Security number) and hashes the first 8 digits, then adds the appropriate check digit to the end. This is the method that should be used to guarantee consistency across tables.

Note:
The string length of a RUT is 9, so HASHRUT only works on string columns.

Required parameters: None.
Applies to database types: Numeric.
Example:

graphics/GTSDM_img_48.jpg

Top of page

INTRANGE

Masks the column with values between Parm1 and Parm2.

Required parameters:

Parm1 and Parm2.

Parm1 contains the start integer value of the range.

Parm2 contains the end integer value of the range. The maximum value for Parm2 is 2147483647. If the database accepts decimal values, you can also use NUMERICRANGE.

Applies to database types: Integer.
Example:

Column integer will be replaced by values between 100 and 110 and column integer_nn will be replaced by values between 120 and 200.

graphics/GTSDM_img_49.jpg

Top of page

IGNORE

Ignores the mask and retains value, if no cross-reference or default value can be found.

Optional parameters:

Parm1 and Parm2.

Parm1 contains the cross-reference value.

Parm2 contains the default value.

Example:

If Parm1 is absent, IGNORE will revert to using the default value set in Parm2. If Parm2 is also absent, IGNORE will ignore the mask and use existing value.

graphics/GTSDM_img_49a.jpg

Top of page

NEXTVAL

Finds the next value from an Oracle sequence. If it is the first time the sequence has been used, it will start at 1, and then is incremented by 1 each subsequent sequence.

Required parameters:

Parm1 (name of the sequence).

Note:
You must have an XREF connection (must be Oracle) set if you use NEXTVAL.

Example:

If you called an Oracle sequence ‘FirstSequence’ and used it to update 20,000 fields in one run, the next time it was called, the run would start from 20,001.

Top of page

NUMERICRANGE

Masks the column with numeric values between Parm1 and Parm2.

Required parameters:

Parm1 and Parm2.

Parm1 contains the start value of the range.

Parm2 contains the end value of the range.

Applies to database types: Numeric.
Example: Column float will be replaced by numeric values between 33.01 and 33.99.

graphics/GTSDM_img_50.jpg

Top of page

NUMHASH

Hashes a numeric value in a character column as digits.

Required parameters:

Parm1 (Parm2 and Parm3 are optional).

Parm2 is the maximum length of the data.

Parm3 is the minimum length of the data.

Applies to database types: Character.
Example: Numeric value in a character column will be hashed by the seed value to create a numeric string, of length between the values in Parm2 and Parm3.

Top of page

OR

The OR function, in conjunction with WHERE, allows you to restrict your obfuscation to only certain rows.

For example, you can use separate masking rules from credit cards/direct debit expiration dates to invoices based on the PAYMENT_TYPE_CODE column. The ADD function must be used on a separate row to the WHERE function.

Note:
The OR function is for masking flat files only as there is no SQL file.

Required parameters: Parm1. This is an SQL WHERE clause.
Example:

graphics/GTSDM_img_51.jpg

Top of page

POSITIONMASK

Masks a value based on positional rules, as defined in Parm1.

Note:
The OR function is for masking flat files only as there is no SQL file.

Required parameters:

Parm1 (Rules for each position are built from the following formulas):

  • RDXXXL – Random Digit at Position XXX from left

  • RDXXXR – Random Digit at Position XXX from right

  • RAXXXL – Random Alphabet at Position XXX from left

  • RAXXXR – Random Alphabet at Position XXX from right

  • RCXXXL - Random Alphanumeric character at position XXX from left

  • RCXXXR - Random Alphanumeric character at position XXX from right

  • F1XXXL - Fixed Digit 1 (for example) at Position XXX from left

  • F1XXXR - Fixed Digit 1 (for example) at Position XXX from right

  • FEXXXL - Fixed Alphabet E (for example) at Position XXX from left

  • FEXXXR - Fixed Alphabet E (for example) at Position XXX from right

Note:
If a rule is not given for any position, then the old value is retained post-masking.

Note:
If the old value is null or all blanks, skip the row and move on to the next row.

Example:

Column PHONE_NUMBER in Table PEOPLE will have the first 3 characters masked with the fixed value 9, with the remaining digits remaining as original values. Therefore, the resulting masked value will be 999XXXXXX, where X is the existing value

graphics/GTSDM_img_51a.jpg

Note:
All of the rules for a column must be set in one row of the CSV, as above. To seperate each positional rule, please use a hyphen (‘-’) without a space.

Top of page

RANDLOV

Masks the column values with the randomly selected values from the seed file.

Required parameters: Parm1, the seed file name.
Applies to database types: Character.
Example:

The data for RANDLOV functions can also be drawn from database tables. Select the columns you wish to use and place them in order in the mapping file (i.e. RD_REF_VALUE2, RD_REF_VALUE3 etc).

Note:
Colums drawn from the database tables DO NOT contain a .txt suffix.

graphics/GTSDM_img_52.jpg

Top of page

RANDLOV1

Generates random addresses, cities, states/provinces etc., from a seed table, that are valid for an existing zip code.

Required parameters:

Parm1 (Seed File Name), Parm 2 (position of column in gtrsc_reference_ data) and Parm 3 (the column in the table to get the existing zip code from).

If you have a table like in the example below with PARM3 being the column POSTAL_CODE, which is used to reference the rd_ref values 3, 5, and 4 from the gtrsc_reference data seed table using the rd_ref_id of “US_ADDRESSES” and the postal code stored in rd_ref value.

Optional parameters: Parm4. This is a default value, which can be used if the rd_ref_value defined in Parm3 can not be found, or fails for any reason during the mask.
Example:

The data for RANDLOV functions can also be drawn from database tables. Select the columns you wish to use and place them in order in the mapping file (i.e. RD_REF_VALUE2, RD_REF_VALUE3 etc).

Note:
Colums drawn from the database tables DO NOT contain a .txt suffix.

graphics/GTSDM_img_52a.jpg

Top of page

RANDOM

Masks the column with random values between Parm1 and Parm2.

Required parameters:

Parm1 and Parm2.

Parm1 contains the start value of the range.

Parm2 contains the end value of the range.

Note:
Parm1 and Parm2 must be provided in the format YYYYMMDD if applied to a date.

Applies to database types: Numeric and Date.
Example: Column ORDER_DATE will be replaced by random date between 2001-Sept-18 to 2002-Nov-15.

graphics/GTSDM_img_54.jpg

Top of page

RANDOMDATE

Replaces existing value with a random value between Parm1 and Parm2.

Required parameters: Parm1 and Parm2.
Applies to database types: Character.
Example: The following columns will have their values replaced by random date values between Parm1 and Parm2.

graphics/GTSDM_img_54.jpg

Top of page

RANDOMTXT

Replaces the column with random text.

Required parameters:

Parm1 and Parm2.

Parm1: The minimum length of the text.

Parm2: The maximum length of the text.

Applies to database types: Character data types.
Example:

RANDOMTXT,3,12. Column will have the value XrzFF. The length of the text string will be between 3 and 12 long.

graphics/GTSDM_img_53.jpg

Top of page

RANDSSN

Masks the column with random values of social security number.

Required parameters: Parm1 (Optional, which acts as separator for SSN).
Applies to database types: Numeric and character types.
Example:

Columns listed in ‘Column’ will be replaced by a Random Social Security number. Entering a separator character into Parm1 (i.e. *), will generate a social security number like 987*65*4320.

graphics/GTSDM_img_55.jpg

Top of page

REPLACE

Searches the column values for the character pattern mentioned in Parm1 and replaces it with the character pattern mentioned in Parm2. Replace operation is case sensitive.

If only Parm1 is supplied then the value of the Parm1 should be a name of the CSV file that contains the list of values to be replaced. This CSV file should be placed in the same directory as gtsdm.exe.

Required parameters:

Parm1 and Parm2.

Parm1 contains the character pattern to be searched in the Column. If Parm2 is absent then only Parm1 is the name of the CSV file that contains list of values to be replaced.

Parm2 contains the character pattern to be replaced.

Applies to database types: Character
Example:

Case 1 : When Parm2 is present.

Here pattern ‘Ab’ when found in the column ‘char’ is replaced by ‘23’, ‘a’ if found in the column ‘char_nn’ is also replaced by ‘23’.

graphics/GTSDM_img_56.jpg

Case 2 : When Parm2 is absent.

Here Parm2 is absent and Parm1 is the name of the CSV file that contains a list of values to be replaced.

graphics/GTSDM_img_57.jpg

The example CSV file could look like shown below. Also please note that REPLACE.csv is placed in the same directory as GTSDM.exe

graphics/GTSDM_img_58.jpg

Top of page

RJUST

RJUST strips blanks from the right of the string and right justifies the column in the string, padding the left with blanks (default) or the value defined in Parm1.

Required parameters: Parm1 (Optional).
Applies to database types: Character.
Example:

The example would mask the LAST_NAME (e.g. Smith) as something like “55555SMITH”.

Note:
This function is most likely to be used in conjunction with substr functionality. The string is right justified to the size of the column (if substr is being masked, the column size is assumed to be the end of the substring).

graphics/GTSDM_img_59.jpg

Top of page

RUT

Generate a Chilean Social Security Number.

Required parameters: None.
Applies to database types: Character.
Example:

graphics/GTSDM_img_60.jpg

Top of page

SEQCHAR

A sequential character using BASE62 numbers, for example, starting at AAA will give AAA then AAB etc.

Required parameters: Parm1.
Applies to database types: Character.
Example:

graphics/GTSDM_img_61.jpg

Top of page

SEQLOV

Masks the column values with the sequentially selected values from the seed file.

Required parameters: Parm1. The seed file name.
Applies to database types: Character types.
Example:

The data for SEQLOV functions can also be drawn from database tables. Select the columns you wish to use and place them in order in the mapping file (i.e. RD_REF_VALUE2, RD_REF_VALUE3 etc).

Note:
Colums drawn from the database tables DO NOT contain a .txt suffix.

graphics/GTSDM_img_62.jpg

Top of page

SEQLOV1

Generates sequential addresses, cities, states/provinces etc.,from a seed table, that are valid for an existing zip code.

Required parameters:

Parm1 (Seed File Name), Parm 2 (position of column in gtrsc_reference_ data) and Parm 3 (the column in the table to get the existing zip code from).

If you have a table like in the example below with PARM3 being the column POSTAL_CODE, which is used to reference the rd_ref values 3, 5, and 4 from the gtrsc_reference data seed table using the rd_ref_id of “US_ADDRESSES” and the postal code stored in rd_ref value.

Optional parameters: Parm4. This is a default value, which can be used if the rd_ref_value defined in Parm3 can not be found, or fails for any reason during the mask.
Example:

graphics/GTSDM_img_62b.jpg

Top of page

SEQNUMBER

Updates each row with a user defined sequence.

For example, if Parm1 is 10 the first row is updated for this column with value 10, the next row with 11 etc. If Parm1 is not supplied the sequence starts at 1.

Optional parameters: Parm1. The start value for the sequence.
Example:

graphics/GTSDM_img_62a.jpg

Top of page

SHUFFLE

Shuffles the values in the specified column for an entire table. The function creates a seed file by writing out each row’s value for the column to a list of values.

It then performs a RANDLOV of SEQLOV function to overwrite the values in the database.

The Shuffle function allows you to write this list of values to:

  1. File - SDM knows to write to file if a . is present in the parm1 value.

  2. Database - If the parm1 value does not have a . in it, the category name is stored in the database seed table.

Required parameters:

Parm1. This is the category in the seedtable in which your list of values is saved, for example, MY_ADDRESSES containing Address, City and Postcode.

Parm2. This is the column in the seedtable you wish to place the value in, for example, entering 1 would select RD_REF_1, which in this example is Address.

Required Options:

In order for the function to run, you will need to use the following (For more information on this, please go to the Options File section on the manual):

  • SEEDTABLECONNECT=connectscramble.txt

  • SEEDTABLE=gtsrc_reference_data

  • SEEDTABLECOLUMNS=RD_REF_ID, RD_REF_VALUE1, RD_REF_VALUE2 etc

Applies to database types: All types.
Example:

Notes:

  1. Do not use the name of an existing seed table.txt file as this will be overwritten each time it is run.
  2. This function can only be used on databases not flat files.

graphics/GTSDM_img_63.jpg

Top of page

SQLFUNCTION

Allows you to make a callout to a native database function or a user defined function. You can also use this to use normal SQL operators to process combinations of other columns. All SQL functions with the exception of aggregate functions should work.

Required parameters:

Parm1, the SQL function or SQL statement.

Applies to database types: All types.
Example:

Parm1=first_name || ‘ ‘|| last_name. This will concatenate first name, a space, and a last name.

Parm1=mynumberformat(HHNO). This will pass HHNO into the database function. The returned value will populate the masked column.

Top of page

TIN

Generates a US (United States) Tax Identification Number.

Required parameters: None.
Applies to database types: Character and numeric types.
Example:

Column TAXID in table PEOPLE will be masked with a generated US Tax Identification Number.

graphics/GTSDM_img_63a.jpg

Top of page

TRANSLATE

Searches the column values for every single character mentioned in Parm1 and replaces it with the sequentially corresponding character mentioned in Parm2. TRANSLATE is a character-by-character operation.

Required parameters:

Parm1 and Parm2.

Parm1 contains the character(s) to be searched in the Column.

Parm2 contains the corresponding character(s) to be replaced.

Applies to database types: Character types.
Example:

All instances of ‘a’ in column FIRST_NAME will be translated to ‘x’, and all instances of 1 in column MEMBERSHIP_ID will be translated to 6.

graphics/GTSDM_img_64.jpg

Top of page

TRANSPOSE

Converts characters consistently to other characters. A to C, B to D etc, set Parm1 to a number to act as a key.

Required parameters:

Parm1.

It contains the key of the transposition.

Applies to database types: Character types.
Example:

‘ab’ if found in the column value will be translated to ‘ef‘ i.e. every ‘a’ character translated to ‘e’ and every ‘b’ character translated to ‘f’. This will vary depending on the key.

Top of page

TRUNCATE

Truncates ALL data for the table. The TRUNCATE function can also be used with a WHERE clause.

Required parameters: None.
Applies to database types: Character, Date and Numeric.
Example:

Truncating the data will execute a fast delete of ALL the data in the table.

graphics/GTSDM_img_65.jpg

Top of page

USPHONE

Masks the column with an auto-generated 7digit US Phone number of the format xxx-xxxx.

Required parameters: None.
Applies to database types: Character types.
Example:

Column named usphone will be masked by auto-generated 7-digit US Phone numbers.

graphics/GTSDM_img_65a.jpg

Top of page

USPHONE(10)

Masks the column with an auto-generated 10 digit US Phone number of the format xxx-xxx-xxxx.

Required parameters: None.
Applies to database types: Character types.
Example:

Column named usphone10 will be masked by auto-generated 10-digit US Phone numbers.

graphics/GTSDM_img_65b.jpg

Top of page

USZIP

Masks the column with an auto-generated 5-digit US Zip code.

Required parameters: None.
Applies to database types: Character types.
Example:

Column named uszip will be masked by auto-generated 5-digit US Zip code.

graphics/GTSDM_img_65c.jpg

Top of page

USZIP+4

Masks the column with an auto-generated 9-digit US Zip+4 code of the format xxxxxxxxx.

Required parameters: None.
Applies to database types: Character types.
Example:

Column named uszip will be masked by auto-generated 9-digit US Zip code.

graphics/GTSDM_img_65d.jpg

Top of page

VALIDSSN

Identifies whether a column contains a valid SSN (United States Social Security Number), then, if yes, masks with a generated SSN.

Required parameters: None.
Applies to database types: Character and numeric types.
Example:

Column ID in table PEOPLE will be replaced by a Random Social Security number, if a valid Social Security Number is found in the column.

graphics/GTSDM_img_65e.jpg

Top of page

VALIDSSNSUB

Identifies whether the first 9 characters of a column contains a valid SSN (United States Social Security Number), then, if yes, masks with a generated SSN.

Required parameters: None.
Applies to database types: Character and numeric types.
Example:

Column ID in table PEOPLE will be replaced by a Random Social Security number, if a valid Social Security Number is found in the first 9 characters of the column.

graphics/GTSDM_img_65f.jpg

Top of page

VALIDTIN

Identifies whether the column contains a valid TIN (United States Tax Identification Number), then, if yes, masks with a generated TIN.

Required parameters:

None.

Applies to database types: Character and numeric types.
Example:

Column ID in table PEOPLE will be replaced by a Random Tax Identification Number, if a valid TIN is found in the column.

graphics/GTSDM_img_65g.jpg

Top of page

VARIANCE

Variant values are generated based on Parm1 (% value) and then added to or subtracted from the column values.

Required parameters:

Parm1, Parm2(Optional), Parm3(Optional).

Parm1 gives percentage variance (1 - 99).

Parm2 is the minimum permitted value.

Parm3 is the maximum permitted value.

Applies to database types: Numeric types.
Example:

If the column value is 100 then Parm1 applies 60% variance and a random number is generated between 40 and 160. However Parm2 (minimum permitted value) and Parm3 (maximum permitted value) ensures that the generated random value lies in the range 50 - 150 instead of 40 – 160.

graphics/GTSDM_img_67.jpg

Top of page

WHERE

The WHERE function allows you to restrict your obfuscation to only certain rows in the table. This will allow you to mask, for example, Male names and Female names differently based on the GENDER column.

The WHERE function does not require a column to be entered. Parm1 will contain the SQL WHERE clause used to sub-select the table data.

Required parameters:

Parm1.

Parm1 is an SQL WHERE clause. It is worth running the WHERE clause in a standard SQL IDE to validate the syntax is correct.

Applies to: Entire table.
Example:

If the MSP_CODE is like HSD

Note:
SDM currently supports the following operators: &lt;, &lt;=, =, &gt;=, &gt;, and LIKE (LIKE is not supported for flat files. It is only supported for database masking).

graphics/GTSDM_img_68.jpg

If you wish to issue multiple WHERE clauses, repeat the WHERE function. Each WHERE function will refer to the block of masking functions BELOW it in the CSV.

In the above example, all of the columns HELP_TEXT will be masked with random values from companies.txt; the rows with an MSP_CODE starting with ‘HSD’ will have the value huw assigned to CREATED_BY; and the rows with an MSP_CODE starting with ‘OFG’ will have the value fred assigned to CREATED_BY and a random value from the lastnames.txt file assigned to column MESSAGE_TEXT.

Top of page