{"id":16785,"date":"2024-01-04T02:24:56","date_gmt":"2024-01-04T07:24:56","guid":{"rendered":"https:\/\/www.iri.com\/blog\/?p=16785"},"modified":"2026-10-21T17:14:22","modified_gmt":"2026-10-21T21:14:22","slug":"finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/","title":{"rendered":"Masking RDB Data in the DarkShield GUI"},"content":{"rendered":"<p data-pm-slice=\"1 1 []\"><em><strong>Editor&#8217;s Note:<\/strong> This article is part of a series about using IRI DarkShield to discover and mask sensitive data in relational databases. DarkShield&#8217;s support for relational database (RDB) sources can complement or, in certain use cases, replace <i><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.iri.com\/products\/fieldshield\">IRI FieldShield<\/a> <\/span><\/i><\/em><em>for similar data classes, location-based searches, and masking functions <i><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.iri.com\/company\/faqs\/190\">for certain use cases<\/a>.<\/span><\/i><\/em><\/p>\n<h2 data-pm-slice=\"1 1 []\">Introduction<\/h2>\n<p><a href=\"https:\/\/www.iri.com\/products\/darkshield\"><span style=\"font-weight: 400;\">IRI DarkShield<\/span><\/a>\u00a0provides specialized wizards in the <a href=\"https:\/\/www.iri.com\/products\/workbench\/darkshield-gui\">IRI Workbench<\/a> integrated development environment (IDE) for finding, classifying, and masking sensitive data in different sources.\u00a0These include structured, semi-structured, and unstructured files, NoSQL databases, and relational databases (RDBs). DarkShield supports relational databases accessible through a JDBC driver connection.<\/p>\n<p data-pm-slice=\"1 1 []\">This article focuses on using the DarkShield Relational DB Search\/Masking Job wizard to discover and mask personally identifiable information (PII) stored in relational databases. It explains the prerequisites, configuration steps, masking rules, and job execution options using an example database.<\/p>\n<p data-pm-slice=\"1 1 []\">The following diagram illustrates the DarkShield architecture and its components. The wizard demonstrated here runs within IRI Workbench.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-19473\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/DarkShield-V7-1-650x1024.png\" alt=\"IRI DarkShield Version 7 architecture showing interfaces, search contexts, transfer protocols, REST API engines, and audit logs.\" width=\"438\" height=\"690\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/DarkShield-V7-1.png 650w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/DarkShield-V7-1-190x300.png 190w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/DarkShield-V7-1-768x1209.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/DarkShield-V7-1-975x1536.png 975w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/DarkShield-V7-1-1300x2048.png 1300w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">DarkShield also provides other source-specific wizards, including the <a href=\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-files-with-the-darkshield-files-wizard\/\"><strong>New File Search\/Masking Job<\/strong><\/a> wizard for files and the <a href=\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-nosql-dbs-with-the-darkshield-gui\"><strong>New NoSQL DB Search\/Masking Job<\/strong><\/a> wizard for NoSQL databases. Those workflows are outside the scope of this article.<\/p>\n<h2 data-pm-slice=\"1 1 []\">What the DarkShield Relational DB Wizard Does<\/h2>\n<p>The <strong>New Relational DB Search\/Masking Job<\/strong> wizard in IRI Workbench creates a DarkShield job configuration file with the <code dir=\"ltr\">.dsc<\/code> extension. The file contains the Search Contexts and Mask Contexts required for the specified database operations.<\/p>\n<p data-pm-slice=\"1 3 []\">These contexts serve different purposes:<\/p>\n<ul>\n<li><strong>Search Contexts<\/strong> define how DarkShield connects to a relational database instance and searches for PII.<\/li>\n<li><strong>Mask Contexts<\/strong> determine how the discovered PII is masked and how DarkShield accesses the target database where the masked data will be written.<\/li>\n<\/ul>\n<p data-pm-slice=\"1 1 []\">DarkShield searches and remediates database content according to Data Classes defined in an <em>IRI Data Class and Rule Library<\/em>. Each Data Class contains one or more search methods, called <strong>Search Matchers<\/strong>, for identifying sensitive information.<\/p>\n<p data-pm-slice=\"1 1 []\">Earlier versions of the wizard supported searching and extracting sensitive values using Java regular expressions (RegEx) and Set File lookups. The wizard now supports additional search methods, along with separate or combined search and masking operations for DarkShield or Voracity users.\u00a0For more information about these search capabilities, see <a href=\"https:\/\/www.iri.com\/blog\/data-protection\/data-matchers\/\"><span style=\"font-weight: 400;\">Data Matchers<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/location-matchers\/\"><span style=\"font-weight: 400;\">Location Matchers<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2 data-pm-slice=\"1 1 []\">Prerequisites<\/h2>\n<p data-pm-slice=\"1 1 []\">Before launching the DarkShield RDB wizard, ensure that you have completed the following preliminary steps.<\/p>\n<h3>1. Configure DarkShield API Preferences<\/h3>\n<p>First, verify that the DarkShield API distribution directory is specified in IRI Workbench<img loading=\"lazy\" decoding=\"async\" class=\"\" title=\"\" src=\"https:\/\/lh7-us.googleusercontent.com\/704t8D-zFuQ4LI71z73tIzRni-mNaRr-cS5hepMJG9IFydYVMyqilXb4wmc-n_Iw0uF_dGk8FGb3nlhuIsDm66hU4mVPF-jD6mY85BLkFdSpfJ-Ds_zpGiv1wY3vtncoQXxXmajEiLobaHEPn1B6qt4\" alt=\"\" width=\"29\" height=\"28\" \/>.\u00a0Navigate to <strong>Preferences &gt; IRI &gt; DarkShield<\/strong>.\u00a0Here, you can configure the DarkShield GUI and API preferences, including the API host, port, and directory where the DarkShield API resides.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16897\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-GUI-and-API-preferences-300x235.png\" alt=\"IRI Workbench DarkShield preferences showing API host, port, and distribution directory configuration.\" width=\"564\" height=\"442\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-GUI-and-API-preferences-300x235.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-GUI-and-API-preferences-768x601.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DarkShield-GUI-and-API-preferences.png 805w\" sizes=\"(max-width: 564px) 100vw, 564px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">If the DarkShield API distribution (Plankton) has not been specified in Preferences, or if your DarkShield Job will use a different DarkShield API distribution, you must manually place the JDBC drivers associated with the database silos in the <code dir=\"ltr\">lib<\/code> folder of the DarkShield API distribution that will be used.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16899\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/lib-folder-DarkShield-300x162.jpg\" alt=\"DarkShield API distribution lib folder containing a JDBC driver JAR file.\" width=\"613\" height=\"331\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/lib-folder-DarkShield-300x162.jpg 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/lib-folder-DarkShield.jpg 715w\" sizes=\"(max-width: 613px) 100vw, 613px\" \/><\/p>\n<h3>2. Prepare an IRI Data Class and Rule Library<\/h3>\n<p>Second, all DarkShield wizards require an IRI Project containing an <strong>IRI Data Class and Rule Library<\/strong>.<\/p>\n<p>The IRI Library must contain at least one Data Class and a masking Rule that can be assigned to that Data Class. The Data Classes identify PII, while the assigned masking Rules determine how the PII will be protected.\u00a0To learn more about creating Data Classes and Rules in an IRI Data Class and Rule Library, read <a href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-data-classification\/\">this article about IRI data classification<\/a>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16900 size-full\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/IRI-Project-containing-IRI-Library.-e1704350734847.png\" alt=\"IRI Workbench Project Explorer showing the IRI Data Class and Rule Library file.\" width=\"164\" height=\"119\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">IRI Project containing IRI Library.<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16901\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/IRI-Data-Class-and-Rules-Library-Form-Editor-300x87.png\" alt=\"IRI Data Class and Rule Library editor displaying configured Data Classes and masking Rules.\" width=\"735\" height=\"213\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/IRI-Data-Class-and-Rules-Library-Form-Editor-300x87.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/IRI-Data-Class-and-Rules-Library-Form-Editor-1024x297.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/IRI-Data-Class-and-Rules-Library-Form-Editor-768x222.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/IRI-Data-Class-and-Rules-Library-Form-Editor.png 1053w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">IRI Data Class and Rules Library Form Editor contains some Data Classes and Rules.<\/span><\/i><\/p>\n<h3 data-pm-slice=\"1 1 []\">3. Verify the DarkShield API Server<\/h3>\n<p>Next, confirm that the Plankton (DarkShield API) server is running.<\/p>\n<p>You can do this by opening the <strong>DarkShield A<\/strong><strong>PI Status<\/strong> view in IRI Workbench. This view displays information about the DarkShield API, including whether the server is currently running.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16902\" style=\"text-align: start;\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/DS-API-status-300x116.png\" alt=\"DarkShield API Status view in IRI Workbench showing the server running.\" width=\"603\" height=\"233\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DS-API-status-300x116.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DS-API-status-768x296.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/DS-API-status.png 775w\" sizes=\"(max-width: 603px) 100vw, 603px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">DarkShield API Status view panel<\/span><\/i><\/p>\n<h3 data-pm-slice=\"1 1 []\">4. Configure Source and Target Database Connections<\/h3>\n<p data-pm-slice=\"1 1 []\">Finally, the Data Source Explorer in IRI Workbench should contain data connection profiles for both the source and target RDB silos.<\/p>\n<p>The destination silo must also contain an existing schema.\u00a0DarkShield will attempt to create and populate the tables in the target schema automatically. However, the automatic derivation of a <code dir=\"ltr\">CREATE TABLE<\/code> statement is not guaranteed to be correct.<\/p>\n<p>If DarkShield cannot successfully create a target table when the job runs, you must create that table beforehand. If a data source connection profile does not already exist, you can create it during the later steps of the DarkShield RDB wizard.\u00a0For an example of configuring a data source connection profile in IRI Workbench, <span style=\"font-weight: 400;\">see the JDBC section in <\/span><a href=\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/connecting-ms-sql-iri-workbench\/\"><span style=\"font-weight: 400;\">this article<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16903 size-full\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-143657.png\" alt=\"IRI Workbench Data Source Explorer showing a Microsoft SQL Server database connection.\" width=\"297\" height=\"160\" \/><\/p>\n<h3 data-pm-slice=\"1 1 []\">Source and Target Tables Used in This Demonstration<\/h3>\n<p>For this demonstration, I will search a table called <code dir=\"ltr\">DARKSHIELD<\/code> inside a schema named <code dir=\"ltr\">IRI<\/code>.<\/p>\n<p>The <code dir=\"ltr\">DARKSHIELD<\/code> table contains a combination of columnar values, free-floating text, and binary data. These different types of database content may contain PII that needs to be discovered and masked.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16905\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-151725-293x300.png\" alt=\" DARKSHIELD table in the IRI schema showing columns for ID, comments, PDF, email, names, and SSN.\" width=\"352\" height=\"360\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-151725-293x300.png 293w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-151725.png 387w\" sizes=\"(max-width: 352px) 100vw, 352px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">I will write the masked data to an empty table, also called <code dir=\"ltr\">DARKSHIELD<\/code>, inside a separate schema named <code dir=\"ltr\">MASKED<\/code>.\u00a0The target <code dir=\"ltr\">DARKSHIELD<\/code> table contains the same columns as the original table in the <code dir=\"ltr\">IRI<\/code> schema.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16906\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-12-121955-300x263.png\" alt=\"DARKSHIELD table in the MASKED schema showing the target database columns.\" width=\"371\" height=\"325\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-12-121955-300x263.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-12-121955.png 402w\" sizes=\"(max-width: 371px) 100vw, 371px\" \/><\/p>\n<h2 data-pm-slice=\"1 1 []\">Using the Wizard<\/h2>\n<p>The following steps demonstrate how to create a DarkShield RDB search and masking job using the <strong>New Relational DB Search\/Masking Job<\/strong> wizard.<\/p>\n<h3>Step 1. Open the Relational DB Wizard<\/h3>\n<p data-pm-slice=\"1 1 []\">To open the wizard, select the <strong>DarkShield<\/strong> menu dropdown in IRI Workbench. Then choose <strong>New Relational DB Search\/Masking Job<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16907\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-132426-300x119.png\" alt=\"IRI Workbench DarkShield menu with New Relational DB Search\/Masking Job selected.\" width=\"499\" height=\"198\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-132426-300x119.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-132426.png 541w\" sizes=\"(max-width: 499px) 100vw, 499px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">The wizard opens the first page, where you can name the new DarkShield Job.\u00a0Here, you also specify the folder and file names for the wizard&#8217;s output.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16908\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-132813-300x252.png\" alt=\"DarkShield RDB wizard showing job folder, name, subfolder, and Search and Mask job type.\" width=\"465\" height=\"390\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-132813-300x252.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-132813.png 526w\" sizes=\"(max-width: 465px) 100vw, 465px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">When finished, click <strong>Next<\/strong> to configure the types of sensitive data and PII you want to find, along with the Masking Rules that will be applied to the discovered information.<\/p>\n<h3 data-pm-slice=\"1 1 []\">Step 2. Select Data Classes and Masking Rules<\/h3>\n<p data-pm-slice=\"1 1 []\">On the next wizard page, specify an <strong>IRI Data Class and Rule Library<\/strong> containing the Data Classes, Data Class Groups, and Rules you want to use.<\/p>\n<p>You can filter the Data Classes and Data Class Groups from the library by selecting or deselecting entries in the <strong>Active<\/strong> column.\u00a0This selection determines which Data Classes and Data Class Groups DarkShield will use when searching for sensitive data and PII.<\/p>\n<p>For this demonstration, I am using the default Data Classes provided when creating an IRI Project.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16909\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/RDB-demo-masked-300x284.png\" alt=\"DarkShield RDB wizard displaying active PII Data Classes for relational database searches.\" width=\"480\" height=\"454\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-demo-masked-300x284.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/RDB-demo-masked.png 534w\" sizes=\"(max-width: 480px) 100vw, 480px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">Next, open the <strong>Masking Rules<\/strong> tab.<\/p>\n<p>In this example, the library contains two masking functions:<\/p>\n<ul>\n<li><strong>Format Preserving Encryption (FPE):<\/strong> The masking rule used for the applicable selected Data Classes.<\/li>\n<li><strong>Blur Date:<\/strong> The masking rule used for date values assigned to that rule.<\/li>\n<\/ul>\n<p data-pm-slice=\"1 1 []\">These Masking Rules determine how the PII found using the selected Data Classes will be masked.\u00a0You can also add or remove Masking Rules from this tab.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16910\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/default-Data-Classes-300x284.png\" alt=\"DarkShield wizard Masking Rules tab showing Format Preserving Encryption and Blur Date rules.\" width=\"478\" height=\"453\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/default-Data-Classes-300x284.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/default-Data-Classes.png 532w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">Once you have selected the required Data Classes, Data Class Groups, and Masking Rules, click <strong>Next<\/strong>.\u00a0The wizard will then allow you to assign the Masking Rules to specific Data Classes.<\/p>\n<h3 data-pm-slice=\"1 1 []\">Step 3. Assign Masking Rules to Data Classes<\/h3>\n<p data-pm-slice=\"1 1 []\">On the <strong>Assign Masking Rules to Data Classes<\/strong> wizard page, each Data Class and Data Class Group must be assigned a Masking Rule to indicate how PII will be masked.<\/p>\n<p>If you do not wish to mask a particular PII data type, click <strong>Back<\/strong> and deselect the applicable <strong>Active<\/strong> checkbox in the Data Class or Data Class Group tab.\u00a0Then return to this page and finish assigning the Masking Rules to the remaining Data Classes and Data Class Groups.<\/p>\n<p data-pm-slice=\"1 1 []\">These assignments control how DarkShield will mask the PII identified by the configured Data Classes during the search operation.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16911\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Masking-Rules-to-specific-Data-Classes-300x285.png\" alt=\"DarkShield wizard assigning Masking Rules to Data Classes and Data Class Groups to determine how PII will be masked.\" width=\"488\" height=\"464\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-Rules-to-specific-Data-Classes-300x285.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-Rules-to-specific-Data-Classes.png 534w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">Once finished, click <strong>Next<\/strong> to begin specifying the RDB silo that will be searched and masked.<\/p>\n<h3 data-pm-slice=\"1 1 []\">Step 4. Select the Source Database and Schema<\/h3>\n<p>On the next wizard page, choose the <strong>Connection profile<\/strong> associated with the database you intend to scan from the dropdown menu.\u00a0You can also create a new connection profile by clicking <strong>New Profile<\/strong> and following the configuration steps.<\/p>\n<p data-pm-slice=\"1 1 []\">After selecting a connection profile, choose the schema to be accessed from the <strong>Schema name<\/strong> dropdown menu.\u00a0Unlike FieldShield, DarkShield RDB jobs handle only one schema at a time.\u00a0The wizard also provides several options for controlling which database tables and rows DarkShield will search or mask.<\/p>\n<h4 data-pm-slice=\"1 1 []\">Include Pattern<\/h4>\n<p>The <strong>Include<\/strong> pattern option allows you to specify a Java regular expression defining which tables in the selected schema should be included in the DarkShield search or masking job.\u00a0Any table names in the source schema that do not match the Include pattern will be ignored at runtime.<\/p>\n<h4><strong>Exclude Pattern<\/strong><\/h4>\n<p>The <strong>Exclude<\/strong> pattern option allows you to specify a Java regular expression defining which tables should be excluded from the search or masking job.\u00a0Any table names in the source schema that match the Exclude pattern will not be included in the job.<\/p>\n<h4><strong>Fetch Size<\/strong><\/h4>\n<p>The <strong>Fetch Size<\/strong> option defines the number of rows from a table that DarkShield processes in a single batch.\u00a0The default value is <strong>1,024 rows<\/strong>.\u00a0Generally, a smaller Fetch Size uses less memory but can reduce performance. Increasing the Fetch Size may improve processing performance. However, beyond a certain point, approximately 1,024 rows, there is usually minimal improvement in job execution time compared to the additional memory consumed.<\/p>\n<h4><strong>Row Limit<\/strong><\/h4>\n<p>The <strong>Row Limit<\/strong> option specifies the maximum number of rows that DarkShield will process, whether searched, masked, or both, in each table. These settings allow you to control the scope of the RDB job while managing the amount of database data processed.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16912\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/select-source-schema-300x252.png\" alt=\"DarkShield RDB wizard source schema configuration showing database connection, table Include and Exclude patterns, Fetch Size, and Row Limit settings.\" width=\"483\" height=\"406\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/select-source-schema-300x252.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/select-source-schema.png 527w\" sizes=\"(max-width: 483px) 100vw, 483px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">Once satisfied with the source schema selection and processing options, click <strong>Next<\/strong>.<\/p>\n<h3 data-pm-slice=\"1 1 []\">Step 5. Filter Data by JDBC Data Type<\/h3>\n<p>The next wizard page allows you to filter the data that DarkShield will search or mask according to its JDBC-defined data type.<\/p>\n<p>On the <strong>JDBC Data Type Selection<\/strong> page, you can select the <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/guides\/jdbc\/\">JDBC data types<\/a> that should be included in the job.\u00a0These selections restrict the search and masking scope to columns with the specified data types.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16913\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-155048-300x253.png\" alt=\"DarkShield RDB wizard JDBC Data Type Selection page showing data types available for inclusion or exclusion during PII searching and masking.\" width=\"450\" height=\"380\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-155048-300x253.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-155048.png 525w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">By default, all JDBC data types are set to <strong>true<\/strong>.\u00a0DarkShield will not search or mask columns belonging to any JDBC data types you uncheck.\u00a0Narrowing the scope of the job in this way can improve DarkShield&#8217;s overall performance by excluding database content that does not need to be searched or masked.<\/p>\n<p data-pm-slice=\"1 1 []\">For example, suppose your database has binary columns containing files that may or may not include sensitive data. However, your data governance team has determined that those files are no longer required and will be purged from the database.<\/p>\n<p data-pm-slice=\"1 1 []\">For example, suppose your database has binary columns containing files that may or may not include sensitive data. However, your data governance team has determined that those files are no longer required and will be purged from the database.<\/p>\n<p>In that situation, you can exclude the <code dir=\"ltr\">LONGVARBINARY<\/code> data type from the DarkShield job.\u00a0This prevents DarkShield from searching or masking that type of data, which can improve processing speed.<\/p>\n<p data-pm-slice=\"1 1 []\">Once you have finished filtering the input data types, click <strong>Next<\/strong> to continue to the Target Schema page.<\/p>\n<h3 data-pm-slice=\"1 1 []\">Step 6. Select the Target Database and Schema<\/h3>\n<p>On the <strong>Target Schema<\/strong> page, specify the destination for the masked content.<\/p>\n<p data-pm-slice=\"1 1 []\"><strong>Important:<\/strong> If the source and destination are the same, the original data will be overwritten.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16914\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/target-schema-300x285.png\" alt=\"DarkShield RDB wizard Target Schema page showing the target database connection, schema selection, and foreign key configuration.\" width=\"467\" height=\"444\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/target-schema-300x285.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/target-schema.png 533w\" sizes=\"(max-width: 467px) 100vw, 467px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">Any driver properties specified in the source and target database connection profiles are passed through to the DarkShield API.<\/p>\n<p>For the target of the operation, select a database from the available connection profiles. Then select an existing schema in that database. You can also choose whether DarkShield should attempt to automatically disable foreign keys in the target schema while running the job.\u00a0Any foreign keys that DarkShield successfully disables during the job will be automatically re-enabled before the job finishes.<\/p>\n<p data-pm-slice=\"1 3 []\">This option only has an effect when the target schema belongs to one of the following databases:<\/p>\n<ul>\n<li>SQL Server<\/li>\n<li>MySQL<\/li>\n<li>Oracle<\/li>\n<li>PostgreSQL<\/li>\n<li>DB2<\/li>\n<\/ul>\n<p data-pm-slice=\"1 1 []\">DarkShield will also attempt to generate target tables automatically using the Data Definition Language (DDL) of the source database.\u00a0However, automatic table generation may fail if the target database differs from the source database because different database systems may use different DDL syntax.<\/p>\n<p data-pm-slice=\"1 1 []\">If the target database already contains tables with the same names as the source tables being processed, DarkShield will truncate the data in those target tables at the start of the job, before inserting the masked data.<\/p>\n<p>If the target database is the same as the source database, DarkShield will update the data as the job runs.<\/p>\n<p>After reviewing the target schema and related settings, click <strong>Finish<\/strong>.\u00a0The wizard will generate a DarkShield Job file with the <code dir=\"ltr\">.dsc<\/code> extension.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16915 size-full\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Project-containing-RDB-.dsc-file.png\" alt=\"IRI Workbench Project Explorer showing a generated DarkShield relational database job configuration file with the .dsc extension.\" width=\"217\" height=\"224\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Project containing RDB .dsc file<\/span><\/i><\/p>\n<h2 data-pm-slice=\"1 1 []\">DarkShield Job Editor<\/h2>\n<p>Every <code dir=\"ltr\">.dsc<\/code> file can be opened and viewed in the <strong>DarkShield Job Editor<\/strong>.\u00a0This editor allows you to modify the DarkShield Job parameters after completing the steps in the DarkShield RDB wizard.<\/p>\n<p>For example, you can add, edit, or remove a source and\/or target from the <code dir=\"ltr\">.dsc<\/code> file by clicking the <strong>Edit<\/strong> button beside the source or target configuration.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16916\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162210-300x249.png\" alt=\" DarkShield Job Editor displaying source and target settings, Data Class Rule Mappings, and Preview controls for the RDB job.\" width=\"590\" height=\"490\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162210-300x249.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162210-768x639.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162210.png 777w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">From the editor, you can also modify the <strong>Data Class Rule Mappings<\/strong> by clicking <strong>Modify<\/strong>.\u00a0You can choose a different IRI Data Class and Rule Library and\/or rearrange the Masking Rules assigned to your Data Classes.<\/p>\n<p>Finally, the editor provides a <strong>Preview<\/strong> option that lets you test your Data Class Search Matchers and Masking Rules using sample text input.\u00a0By clicking <strong>Preview<\/strong>, you can see what PII the selected Data Classes find and how the matching PII is transformed using the current Data Classes and Masking Rules.\u00a0This allows you to review the configured PII search and masking behavior before running the job against your relational database.<\/p>\n<h2 data-pm-slice=\"1 1 []\">Running Your Search and Masking Jobs<\/h2>\n<p>You can use your DarkShield Job configuration in three different ways.<\/p>\n<h3>1. Search Job<\/h3>\n<p>A <strong>Search Job<\/strong> identifies PII in the specified data source and logs the search results to a file without performing the masking operation.\u00a0Be aware that the search result files, which use the <code dir=\"ltr\">.*annotations.json<\/code> naming pattern, may contain PII discovered in your data sources.<\/p>\n<p>The location of these JSON files depends on the DarkShield API used.\u00a0The DarkShield Base and File API save the JSON files in your workspace. However, the DarkShield NoSQL and RDB API store the search results in the directory specified in the DarkShield API configuration file.<\/p>\n<h3 data-pm-slice=\"1 1 []\">2. Masking Job<\/h3>\n<p>A <strong>Masking Job<\/strong> uses the search log generated by a previous Search Job to mask the discovered PII.\u00a0This allows you to perform the PII discovery and masking operations separately.<\/p>\n<h3 data-pm-slice=\"1 1 []\">3. Search and Masking Job<\/h3>\n<p>A <strong>Search and Masking Job<\/strong> searches for PII and masks the discovered sensitive values within a single job.<\/p>\n<p data-pm-slice=\"1 1 []\">In this demonstration, I will run a DarkShield Search and Masking Job.<\/p>\n<h3>Running the DarkShield Search and Masking Job<\/h3>\n<p>To run the job, right-click the <code dir=\"ltr\">.dsc<\/code> file in IRI Workbench and select <strong>IRI &gt; Run Search and Masking Job<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16917\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162529-300x295.png\" alt=\" IRI Workbench context menu showing the Run Search and Masking Job command for executing a DarkShield RDB job.\" width=\"586\" height=\"576\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162529-300x295.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162529-70x70.png 70w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Screenshot-2023-07-11-162529.png 733w\" sizes=\"(max-width: 586px) 100vw, 586px\" \/><\/p>\n<p data-pm-slice=\"1 1 []\">After running the Search and Masking Job, DarkShield masks the PII found during the search operation and writes the masked data to the target silo specified earlier in the wizard.<\/p>\n<h3 data-pm-slice=\"1 1 []\">Reviewing the Original and Masked PII<\/h3>\n<p>The following examples show the source and target tables before and after the DarkShield search and masking operation.<\/p>\n<p>These tables contain a mixture of structured and unstructured data, including PII stored in database columns and binary content within a PDF column.<\/p>\n<p data-pm-slice=\"1 1 []\"><strong>Original Source Table<\/strong><\/p>\n<p>The following image shows the <code dir=\"ltr\">DARKSHIELD<\/code> table in the <code dir=\"ltr\">IRI<\/code> schema. The table contains various PII values, along with binary data stored in the PDF column.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16918\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Table-DARKSHIELD-from-IRI-schema-300x60.png\" alt=\"Original DARKSHIELD table in the IRI schema containing unmasked PII and binary data in the PDF column.\" width=\"695\" height=\"139\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Table-DARKSHIELD-from-IRI-schema-300x60.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Table-DARKSHIELD-from-IRI-schema-768x154.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Table-DARKSHIELD-from-IRI-schema.png 900w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Table DARKSHIELD from IRI schema containing various PII and binary inside the PDF column<\/span><\/i><\/p>\n<p data-pm-slice=\"1 1 []\"><strong>Original PDF with Unprotected PII<\/strong><\/p>\n<p>The binary content stored in the PDF column can be converted into a PDF document.\u00a0The following image shows the original PDF containing unprotected PII.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16919\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-unprotected-PII-270x300.png\" alt=\"PDF document extracted from a relational database binary column showing unprotected PII and banking information.\" width=\"515\" height=\"572\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-unprotected-PII-270x300.png 270w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-unprotected-PII-768x854.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-unprotected-PII.png 817w\" sizes=\"(max-width: 515px) 100vw, 515px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Binary in PDF column converted to PDF with unprotected PII<\/span><\/i><\/p>\n<p data-pm-slice=\"1 1 []\"><strong>Target Table After Masking<\/strong><\/p>\n<p>After the DarkShield Search and Masking Job runs, the <code dir=\"ltr\">DARKSHIELD<\/code> table in the <code dir=\"ltr\">MASKED<\/code> schema contains the masked PII values.\u00a0The table also contains the binary content from the PDF column after the masking operation.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16920\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/table-DS-from-masked-schema-300x62.png\" alt=\" DARKSHIELD table in the MASKED schema containing masked PII values and protected binary PDF content.\" width=\"725\" height=\"150\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-DS-from-masked-schema-300x62.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-DS-from-masked-schema-768x159.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/table-DS-from-masked-schema.png 879w\" sizes=\"(max-width: 725px) 100vw, 725px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Table DARKSHIELD from MASKED schema containing various PII and binary inside the PDF column<\/span><\/i><\/p>\n<p data-pm-slice=\"1 1 []\"><strong>PDF with Protected PII<\/strong><\/p>\n<p>The following image shows the PDF content extracted from the masked table.\u00a0The PII within the PDF document has also been masked by DarkShield.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16921\" src=\"\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected-1-281x300.png\" alt=\"PDF document extracted from the masked relational database showing protected PII and banking information after DarkShield masking.\" width=\"529\" height=\"565\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected-1-281x300.png 281w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected-1-768x820.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Binary-in-PDF-column-converted-to-PDF-with-PII-protected-1.png 826w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Binary in PDF column converted to PDF with PII-protected<\/span><\/i><\/p>\n<p data-pm-slice=\"1 1 []\">These results demonstrate how DarkShield can find and mask PII in both conventional relational database columns and binary content that contains unstructured information, such as PDF documents.<\/p>\n<h2 data-pm-slice=\"1 1 []\">Frequently Asked Questions<\/h2>\n<h3>Can DarkShield find and mask PII in relational databases?<\/h3>\n<p>Yes. IRI DarkShield can search for and mask PII in relational databases accessible through JDBC connections. The Relational DB Search\/Masking Job wizard lets users select Data Classes, configure Search Matchers, assign Masking Rules, and specify the source and target database schemas.<\/p>\n<h3>How does DarkShield determine which PII to mask?<\/h3>\n<p>DarkShield uses Data Classes and Data Class Groups configured in an IRI Data Class and Rule Library to identify PII. Each Data Class contains one or more Search Matchers. Users assign Masking Rules to the selected Data Classes to determine how the discovered PII will be transformed.<\/p>\n<h3>Can DarkShield mask PII stored in PDF files inside relational database columns?<\/h3>\n<p>Yes. As demonstrated in this article, DarkShield can find and mask PII within PDF content stored in a binary column of a relational database. The example shows both the original PDF containing unprotected PII and the PDF with protected PII after masking.<\/p>\n<h3>Can I limit which relational database tables and data types DarkShield searches?<\/h3>\n<p>Yes. The wizard provides Include and Exclude patterns to control which tables are processed within a selected schema. You can also filter columns by JDBC-defined data types and configure Fetch Size and Row Limit settings to control processing.<\/p>\n<h3>What is the difference between a Search Job, a Masking Job, and a Search and Masking Job?<\/h3>\n<p>A Search Job finds PII and saves the discovery results in a JSON annotation file. A Masking Job uses a previously generated search log to mask the discovered PII. A Search and Masking Job combines both operations, allowing DarkShield to find and mask PII in a single job.<\/p>\n<h2>Getting Help with DarkShield RDB Search and Masking<\/h2>\n<p>If you would like help using the DarkShield RDB wizard to search for and\/or mask PII in your relational database, or if you need assistance working with other supported data sources, please contact your <a href=\"https:\/\/www.iri.com\/partners\/resellers\">IRI representative<\/a> or email <a href=\"mailto:darkshield@iri.com\"><strong>darkshield@iri.com<\/strong><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Editor&#8217;s Note: This article is part of a series about using IRI DarkShield to discover and mask sensitive data in relational databases. DarkShield&#8217;s support for relational database (RDB) sources can complement or, in certain use cases, replace IRI FieldShield for similar data classes, location-based searches, and masking functions for certain use cases. Introduction IRI DarkShield\u00a0provides<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\" title=\"Masking RDB Data in the DarkShield GUI\">Read More<\/a><\/div>\n","protected":false},"author":152,"featured_media":19605,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[8,91,29],"tags":[14,18,13,1482,89,1718,1388,1787,1719,1724,1121],"class_list":["post-16785","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-iri-workbench","category-test-data","tag-data-masking","tag-data-privacy","tag-data-protection-2","tag-database-security","tag-database-test-data","tag-finding-pii","tag-iri-darkshield","tag-masking-binary-columns","tag-masking-pii","tag-rdb-wizard","tag-relational-database"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Masking PII in Relational Databases with IRI DarkShield<\/title>\n<meta name=\"description\" content=\"Learn how to find and mask PII in relational databases using IRI DarkShield, including JDBC connections, data classes, masking rules, and job setup.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Masking RDB Data in the DarkShield GUI\" \/>\n<meta property=\"og:description\" content=\"Learn how to find and mask PII in relational databases using IRI DarkShield, including JDBC connections, data classes, masking rules, and job setup.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-04T07:24:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-21T21:14:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1110\" \/>\n\t<meta property=\"og:image:height\" content=\"532\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Adam Lewis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adam Lewis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\"},\"author\":{\"name\":\"Adam Lewis\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e\"},\"headline\":\"Masking RDB Data in the DarkShield GUI\",\"datePublished\":\"2024-01-04T07:24:56+00:00\",\"dateModified\":\"2026-10-21T21:14:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\"},\"wordCount\":3059,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png\",\"keywords\":[\"data masking\",\"data privacy\",\"data protection\",\"database security\",\"database test data\",\"finding pii\",\"IRI DarkShield\",\"masking binary columns\",\"masking pii\",\"RDB Wizard\",\"relational database\"],\"articleSection\":[\"Data Masking\/Protection\",\"IRI Workbench\",\"Test Data\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\",\"name\":\"Masking PII in Relational Databases with IRI DarkShield\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png\",\"datePublished\":\"2024-01-04T07:24:56+00:00\",\"dateModified\":\"2026-10-21T21:14:22+00:00\",\"description\":\"Learn how to find and mask PII in relational databases using IRI DarkShield, including JDBC connections, data classes, masking rules, and job setup.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png\",\"width\":1110,\"height\":532,\"caption\":\"Illustration of IRI DarkShield PII discovery and masking, featuring personal identification documents, sensitive data, security shields, and relational databases.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Masking RDB Data in the DarkShield GUI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e\",\"name\":\"Adam Lewis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"caption\":\"Adam Lewis\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/adaml\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Masking PII in Relational Databases with IRI DarkShield","description":"Learn how to find and mask PII in relational databases using IRI DarkShield, including JDBC connections, data classes, masking rules, and job setup.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/","og_locale":"en_US","og_type":"article","og_title":"Masking RDB Data in the DarkShield GUI","og_description":"Learn how to find and mask PII in relational databases using IRI DarkShield, including JDBC connections, data classes, masking rules, and job setup.","og_url":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/","og_site_name":"IRI","article_published_time":"2024-01-04T07:24:56+00:00","article_modified_time":"2026-10-21T21:14:22+00:00","og_image":[{"width":1110,"height":532,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png","type":"image\/png"}],"author":"Adam Lewis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Adam Lewis","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/"},"author":{"name":"Adam Lewis","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e"},"headline":"Masking RDB Data in the DarkShield GUI","datePublished":"2024-01-04T07:24:56+00:00","dateModified":"2026-10-21T21:14:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/"},"wordCount":3059,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png","keywords":["data masking","data privacy","data protection","database security","database test data","finding pii","IRI DarkShield","masking binary columns","masking pii","RDB Wizard","relational database"],"articleSection":["Data Masking\/Protection","IRI Workbench","Test Data"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/","url":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/","name":"Masking PII in Relational Databases with IRI DarkShield","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png","datePublished":"2024-01-04T07:24:56+00:00","dateModified":"2026-10-21T21:14:22+00:00","description":"Learn how to find and mask PII in relational databases using IRI DarkShield, including JDBC connections, data classes, masking rules, and job setup.","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png","width":1110,"height":532,"caption":"Illustration of IRI DarkShield PII discovery and masking, featuring personal identification documents, sensitive data, security shields, and relational databases."},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-protection\/finding-and-masking-pii-in-relational-databases-with-the-darkshield-rdb-wizard\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Masking RDB Data in the DarkShield GUI"}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e","name":"Adam Lewis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","caption":"Adam Lewis"},"url":"https:\/\/www.iri.com\/blog\/author\/adaml\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2024\/01\/Masking-RDB-Data-in-the-DarkShield-GUI-1.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16785"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/152"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=16785"}],"version-history":[{"count":17,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16785\/revisions"}],"predecessor-version":[{"id":19603,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16785\/revisions\/19603"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/19605"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=16785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=16785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=16785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}