{"id":13908,"date":"2020-07-08T11:04:00","date_gmt":"2020-07-08T15:04:00","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=13908"},"modified":"2026-02-23T18:01:00","modified_gmt":"2026-02-23T23:01:00","slug":"proxy-dynamic-masking-fieldshield","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/","title":{"rendered":"Proxy-Based Dynamic Data Masking in FieldShield"},"content":{"rendered":"<p>This article describes a\u00a0<a href=\"https:\/\/www.iri.com\/solutions\/data-masking\/dynamic-data-masking\">dynamic data masking<\/a> (DDM) method available to\u00a0<a href=\"https:\/\/www.iri.com\/products\/fieldshield\">IRI FieldShield<\/a>\u00a0premium sites that uses a proxy-based system for intercepting application queries to JDBC-connected databases. It is one of several approaches to masking data in flight which FieldShield users can consider.<\/p>\n<p>Other IRI DDM options include: <a href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/fieldshield-sdk-2\/\">API-callable<\/a> FieldShield functions embedded into C\/C++\/C#, Java or .NET programs; <a href=\"https:\/\/www.iri.com\/blog\/data-protection\/real-time-data-masking\/\">real-time<\/a> FieldShield functions embedded into SQL procedures that create masked views; and,\u00a0<a href=\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\">dynamic unmasking<\/a> of statically masked tables for authorized users.<\/p>\n<p>The proxy-based system introduced here uses a fit-for-purpose, database-specific \u201cJDBC SQL Trail\u201d driver in conjunction with a configuration and management web application called SQL Sharp (SQL#). This diagram shows the system architecture before and after implementation:<\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-13913 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking-1024x1024.png\" alt=\"\" width=\"448\" height=\"448\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking-150x150.png 150w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking-300x300.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking-768x768.png 768w\" sizes=\"(max-width: 448px) 100vw, 448px\" \/><\/a><\/p>\n<p>This application currently supports the following relational database platforms:<\/p>\n<ul>\n<li>Oracle 11g, 12c, 18\/19c<\/li>\n<li>PostgreSQL 9.5, 9.6, 10, 11<\/li>\n<li>MS SQL 2014, 2016<\/li>\n<li>SAP HANA 2.0<\/li>\n<\/ul>\n<p>and requires the following third-party components:<\/p>\n<ul>\n<li>MS Windows 7,10, or Server 2012 and later (tested).<\/li>\n<li>Java JDK and JRE 1.8 or later.<\/li>\n<li>Tomcat 8.5 or above to run the SQL# web server.<\/li>\n<li>A modern web browser, such as:\n<ul>\n<li>Google Chrome<\/li>\n<li>Mozilla Firefox<\/li>\n<li>Apple Safari<\/li>\n<li>Microsoft Edge<\/li>\n<\/ul>\n<\/li>\n<li>Oracle or PostgreSQL as the repository database to store:\n<ul>\n<li>SQL# user and group configuration<\/li>\n<li>DB access and activity controls<\/li>\n<li>Dynamic data masking policies<\/li>\n<li>SQL audit logs<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>How Does It Work?<\/h5>\n<p>Within the SQL# web application, you create data masking policies to redact column values in flight for all but authorized users connecting to the database through the JDBC SQL Trail driver. You need to install and configure that driver for each database instance you want to protect.<\/p>\n<p>The DDM policies define which tables and columns to mask, and how the masked values will appear. Once the system is properly configured, all queries connected through the driver will be subject to the masking policy.<\/p>\n<p>It is also possible to define policies to block users from logging in and certain SQL activities. A full login and SQL activity audit log is produced, and viewable in SQL#.<\/p>\n<p>The driver does not differentiate between application users for blocking, masking, or auditing purposes. However, you can authorize specifically named users \u2014 making alternative application server connections to the DB through the same driver \u2014 to see data unmasked.<\/p>\n<h5>Creating a Masking Policy<\/h5>\n<p>To create a masking policy in SQL#, Use the <b>Masking Policy<\/b> tab of the <b>SQL# Execute Management<\/b> screen. Select the <b>+<\/b> (Add) icon to the right of the <b>Masking Rule List<\/b> label.<\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-MaskingPolicy.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-13915 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-MaskingPolicy-1024x531.jpg\" alt=\"\" width=\"750\" height=\"389\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-MaskingPolicy-1024x531.jpg 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-MaskingPolicy-300x155.jpg 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-MaskingPolicy-768x398.jpg 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-MaskingPolicy.jpg 1110w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><\/p>\n<p>Give the masking rule a name, and an optional description. You can then choose the type of mask that will apply from the <b>Masing Regex:<\/b> drop-down in the <b>Add Masking Rule<\/b> dialog.<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddMask.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-13916 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddMask.jpg\" alt=\"\" width=\"549\" height=\"458\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddMask.jpg 601w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddMask-300x250.jpg 300w\" sizes=\"(max-width: 549px) 100vw, 549px\" \/><\/a><\/p>\n<p>The first three options are predefined, while the Regex allows you to define a custom masking format. Click the <b>+<\/b> (Add) icon to the right of the <b>TAB\/COL<\/b> label to add one or more table and column combinations, to specify which data values will be masked.<\/p>\n<p>After each combination of table and columns have been made, Click the <b>Add<\/b> button in the middle of the dialog to put them into the list. When you are finished specifying table and column locations, Click the <b>Add<\/b> button at the bottom to add the locations to the <b>Add Masking Rule<\/b> dialog.<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddTableColumn.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-13917 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddTableColumn.jpg\" alt=\"\" width=\"550\" height=\"481\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddTableColumn.jpg 801w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddTableColumn-300x263.jpg 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-AddTableColumn-768x672.jpg 768w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p>Finally, click\u00a0<b>Save<\/b>\u00a0at the bottom of the <b>Add Masking Rule<\/b> dialog when finished with the masking rule. At this point, all users who are configured for access to the data will see masked values when connecting through the JDBC SQL Trail proxy driver.<\/p>\n<p>To allow a user to view unmasked data, you must add them to the <b>Unmasked User List<\/b>, as described below.<\/p>\n<h5>Granting Authorization to Users<\/h5>\n<p>Within the same <b>Masking Policy<\/b> tab of the <b>SQL# Execute Management<\/b> screen. Click the <b>+<\/b> (Add) icon to the right of the <b>Unmasked User List<\/b> label. This will display the <b>Search User<\/b> dialog where you can select one or more users for whom queries into the selected columns and tables will not be masked.<\/p>\n<p>Click\u00a0<b>Save\u00a0<\/b>at the bottom of the dialog when you are finished selecting users.<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-UnmaskedUser.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-13919 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-UnmaskedUser.jpg\" alt=\"\" width=\"550\" height=\"390\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-UnmaskedUser.jpg 847w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-UnmaskedUser-300x213.jpg 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-UnmaskedUser-768x545.jpg 768w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<h5>Using SQL# and SQL Trail from DB Applications<\/h5>\n<p>In this example, our database application will be <a href=\"https:\/\/www.iri.com\/products\/workbench\">IRI Workbench<\/a>, the Eclipse front-end job design environment for Voracity, FieldShield, and other IRI software products.<\/p>\n<p>To enable your applications for SQL control and dynamic data masking using the SQL# proxy server and the JDBC SQL Trail driver, you will need to activate SQL# through Tomcat and its proxy server. You must also configure the JDBC SQL Trail driver in the IRI Workbench Data Source Explorer view, as well as the DDM policies in SQL# as described above.<\/p>\n<p>Here is a view of the Oracle instance connected through the JDBC SQL Trail driver.<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-data-source-explorer.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-13920 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-data-source-explorer.png\" alt=\"\" width=\"319\" height=\"575\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-data-source-explorer.png 319w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-data-source-explorer-166x300.png 166w\" sizes=\"(max-width: 319px) 100vw, 319px\" \/><\/a><\/p>\n<p>Note that all normal database operations and IRI job wizards will continue to work through this connection. That also means that any unauthorized activity from IRI Workbench will be blocked, and all SQL commands issued from here to the connected database will be recorded in the SQL# audit log.<\/p>\n<p>This is a Workbench query on the ORDERS table that was policy-configured for DDM in SQL#:<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-13921 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass.png\" alt=\"\" width=\"418\" height=\"56\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass.png 418w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass-300x40.png 300w\" sizes=\"(max-width: 418px) 100vw, 418px\" \/><\/a><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-13922 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott.png\" alt=\"\" width=\"554\" height=\"226\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott.png 554w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott-300x122.png 300w\" sizes=\"(max-width: 554px) 100vw, 554px\" \/><\/a><\/p>\n<p>vs. the same query ran by an authorized user, which displays the original unmasked data:<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-13923 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass-2.png\" alt=\"\" width=\"413\" height=\"53\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass-2.png 413w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-user-pass-2-300x38.png 300w\" sizes=\"(max-width: 413px) 100vw, 413px\" \/><\/a><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-13924 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott-2.png\" alt=\"\" width=\"576\" height=\"223\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott-2.png 576w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-select-from-scott-2-300x116.png 300w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/a><\/p>\n<p>Meanwhile back in the SQL# application\u2019s logging section, you can see our query record:<\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-query-record.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-13925 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2020\/07\/proxy-query-record-1024x57.png\" alt=\"\" width=\"1024\" height=\"57\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-query-record-1024x57.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-query-record-300x17.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-query-record-768x43.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/proxy-query-record.png 1090w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>from the IRI Workbench IP address.<\/p>\n<p>If you have any questions, or need help with dynamic data masking in this environment or via the FieldShield SDK, please email <a href=\"mailto:fieldshield@iri.com\">fieldshield@iri.com<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article describes a\u00a0dynamic data masking (DDM) method available to\u00a0IRI FieldShield\u00a0premium sites that uses a proxy-based system for intercepting application queries to JDBC-connected databases. It is one of several approaches to masking data in flight which FieldShield users can consider. Other IRI DDM options include: API-callable FieldShield functions embedded into C\/C++\/C#, Java or .NET programs;<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/\" title=\"Proxy-Based Dynamic Data Masking in FieldShield\">Read More<\/a><\/div>\n","protected":false},"author":129,"featured_media":13913,"comment_status":"open","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,3,2255],"tags":[14,1478,651,520,956,50,1477,977,1475,1476],"class_list":["post-13908","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-vldb-operations","category-archived-articles","tag-data-masking","tag-db-application","tag-dynamic-data-masking","tag-iri-fieldshield","tag-jdbc","tag-oracle","tag-packaged-apps","tag-sql","tag-sql-sharp","tag-web-app"],"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>Proxy-Based Dynamic Data Masking in FieldShield - IRI<\/title>\n<meta name=\"description\" content=\"This article describes the dynamic data masking (DDM) method for IRI FieldShield that uses a proxy-based system for intercepting application queries\" \/>\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\/proxy-dynamic-masking-fieldshield\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Proxy-Based Dynamic Data Masking in FieldShield\" \/>\n<meta property=\"og:description\" content=\"This article describes the dynamic data masking (DDM) method for IRI FieldShield that uses a proxy-based system for intercepting application queries\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-08T15:04:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-23T23:01:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carson Smith\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carson Smith\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 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\/proxy-dynamic-masking-fieldshield\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/\"},\"author\":{\"name\":\"Carson Smith\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/cdc691bbf90463bf33eb5d8710c6fb0a\"},\"headline\":\"Proxy-Based Dynamic Data Masking in FieldShield\",\"datePublished\":\"2020-07-08T15:04:00+00:00\",\"dateModified\":\"2026-02-23T23:01:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/\"},\"wordCount\":899,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png\",\"keywords\":[\"data masking\",\"DB application\",\"dynamic data masking\",\"IRI FieldShield\",\"JDBC\",\"Oracle\",\"packaged apps\",\"SQL\",\"SQL Sharp\",\"web app\"],\"articleSection\":[\"Data Masking\/Protection\",\"VLDB\",\"Archived Articles\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/\",\"name\":\"Proxy-Based Dynamic Data Masking in FieldShield - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png\",\"datePublished\":\"2020-07-08T15:04:00+00:00\",\"dateModified\":\"2026-02-23T23:01:00+00:00\",\"description\":\"This article describes the dynamic data masking (DDM) method for IRI FieldShield that uses a proxy-based system for intercepting application queries\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Proxy-Based Dynamic Data Masking in FieldShield\"}]},{\"@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\/cdc691bbf90463bf33eb5d8710c6fb0a\",\"name\":\"Carson Smith\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/760e08935593c7e0362eae92ccc6d135?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/760e08935593c7e0362eae92ccc6d135?s=96&d=blank&r=g\",\"caption\":\"Carson Smith\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/carsons\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Proxy-Based Dynamic Data Masking in FieldShield - IRI","description":"This article describes the dynamic data masking (DDM) method for IRI FieldShield that uses a proxy-based system for intercepting application queries","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\/proxy-dynamic-masking-fieldshield\/","og_locale":"en_US","og_type":"article","og_title":"Proxy-Based Dynamic Data Masking in FieldShield","og_description":"This article describes the dynamic data masking (DDM) method for IRI FieldShield that uses a proxy-based system for intercepting application queries","og_url":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/","og_site_name":"IRI","article_published_time":"2020-07-08T15:04:00+00:00","article_modified_time":"2026-02-23T23:01:00+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png","type":"image\/png"}],"author":"Carson Smith","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Carson Smith","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/"},"author":{"name":"Carson Smith","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/cdc691bbf90463bf33eb5d8710c6fb0a"},"headline":"Proxy-Based Dynamic Data Masking in FieldShield","datePublished":"2020-07-08T15:04:00+00:00","dateModified":"2026-02-23T23:01:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/"},"wordCount":899,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png","keywords":["data masking","DB application","dynamic data masking","IRI FieldShield","JDBC","Oracle","packaged apps","SQL","SQL Sharp","web app"],"articleSection":["Data Masking\/Protection","VLDB","Archived Articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/","url":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/","name":"Proxy-Based Dynamic Data Masking in FieldShield - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png","datePublished":"2020-07-08T15:04:00+00:00","dateModified":"2026-02-23T23:01:00+00:00","description":"This article describes the dynamic data masking (DDM) method for IRI FieldShield that uses a proxy-based system for intercepting application queries","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-protection\/proxy-dynamic-masking-fieldshield\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Proxy-Based Dynamic Data Masking in FieldShield"}]},{"@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\/cdc691bbf90463bf33eb5d8710c6fb0a","name":"Carson Smith","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/760e08935593c7e0362eae92ccc6d135?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/760e08935593c7e0362eae92ccc6d135?s=96&d=blank&r=g","caption":"Carson Smith"},"url":"https:\/\/www.iri.com\/blog\/author\/carsons\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2020\/07\/dynamic-data-masking.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/13908"}],"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\/129"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=13908"}],"version-history":[{"count":13,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/13908\/revisions"}],"predecessor-version":[{"id":13932,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/13908\/revisions\/13932"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/13913"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=13908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=13908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=13908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}