<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h2 class="title">
      <a name="data-masking">
      </a>
      8.5 MySQL Enterprise Data Masking and De-Identification
     </h2>
    </div>
   </div>
  </div>
  <div class="toc">
   <dl class="toc">
    <dt>
     <span class="section">
      <a href="data-masking-components-vs-plugin.html">
       8.5.1 Data-Masking Components Versus the Data-Masking Plugin
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="data-masking-components.html">
       8.5.2 MySQL Enterprise Data Masking and De-Identification Components
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="data-masking-plugin.html">
       8.5.3 MySQL Enterprise Data Masking and De-Identification Plugin
      </a>
     </span>
    </dt>
   </dl>
  </div>
  <a class="indexterm" name="idm46045233534864">
  </a>
  <a class="indexterm" name="idm46045233533792">
  </a>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    MySQL Enterprise Data Masking and De-Identification is an extension included in MySQL Enterprise Edition, a commercial product.
      To learn more about commercial products,
    <a class="ulink" href="https://www.mysql.com/products/" target="_blank">
     https://www.mysql.com/products/
    </a>
    .
   </p>
  </div>
  <p>
   MySQL Enterprise Edition provides data masking and de-identification capabilities:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Transformation of existing data to mask it and remove
        identifying characteristics, such as changing all digits of a
        credit card number but the last four to
      <code class="literal">
       'X'
      </code>
      characters.
     </p>
    </li>
    <li class="listitem">
     <p>
      Generation of random data, such as email addresses and payment
        card numbers.
     </p>
    </li>
    <li class="listitem">
     <p>
      Substitution of data by data from dictionaries stored in the
        database. The dictionaries are easily replicated in a standard
        way. Administration is restricted to authorized users who are
        granted special privileges so that only they can create and
        modify the dictionaries.
     </p>
    </li>
   </ul>
  </div>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    MySQL Enterprise Data Masking and De-Identification was implemented originally in MySQL as a plugin library.
      As of MySQL 8.4, MySQL Enterprise Edition also provides components to
      access data masking and de-identification capabilities. For
      information about the similarities and differences, see
    <a class="xref" href="data-masking-components-vs-plugin.html#data-masking-component-vs-plugin" title="Table 8.45 Comparison Between Data-Masking Components and Plugin Elements">
     Table 8.45, “Comparison Between Data-Masking Components and Plugin Elements”
    </a>
    .
   </p>
   <p>
    If you are using MySQL Enterprise Data Masking and De-Identification for the first time, consider installing
      the components for access to the ongoing enhancements only
      available with component infrastructure.
   </p>
  </div>
  <p>
   The way that applications use these capabilities depends on the
    purpose for which the data is used and who accesses it:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Applications that use sensitive data may protect it by
        performing data masking and permitting use of partially masked
        data for client identification. Example: A call center may ask
        for clients to provide their last four Social Security Number
        digits.
     </p>
    </li>
    <li class="listitem">
     <p>
      Applications that require properly formatted data, but not
        necessarily the original data, can synthesize sample data.
        Example: An application developer who is testing data validators
        but has no access to original data may synthesize random data
        with the same format.
     </p>
    </li>
    <li class="listitem">
     <p>
      Applications that must substitute a real name with a dictionary
        term to protect to protect sensitive information, but still
        provide realistic content to application users. Example: A user
        in training who is restricted from viewing addresses gets a
        random term from dictionary
      <code class="literal">
       city names
      </code>
      instead of the real city name. A variant of this scenario may be
        that the real city name is replaced only if it exists in
      <code class="literal">
       usa_city_names
      </code>
      .
     </p>
    </li>
   </ul>
  </div>
  <p>
   Example 1:
  </p>
  <p>
   Medical research facilities can hold patient data that comprises a
    mix of personal and medical data. This may include genetic sequences
    (long strings), test results stored in JSON format, and other data
    types. Although the data may be used mostly by automated analysis
    software, access to genome data or test results of particular
    patients is still possible. In such cases, data masking should be
    used to render this information not personally identifiable.
  </p>
  <p>
   Example 2:
  </p>
  <p>
   A credit card processor company provides a set of services using
    sensitive data, such as:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Processing a large number of financial transactions per second.
     </p>
    </li>
    <li class="listitem">
     <p>
      Storing a large amount of transaction-related data.
     </p>
    </li>
    <li class="listitem">
     <p>
      Protecting transaction-related data with strict requirements for
        personal data.
     </p>
    </li>
    <li class="listitem">
     <p>
      Handling client complaints about transactions using reversible
        or partially masked data.
     </p>
    </li>
   </ul>
  </div>
  <p>
   A typical transaction may include many types of sensitive
    information, including:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Credit card number.
     </p>
    </li>
    <li class="listitem">
     <p>
      Transaction type and amount.
     </p>
    </li>
    <li class="listitem">
     <p>
      Merchant type.
     </p>
    </li>
    <li class="listitem">
     <p>
      Transaction cryptogram (to confirm transaction legitimacy).
     </p>
    </li>
    <li class="listitem">
     <p>
      Geolocation of GPS-equipped terminal (for fraud detection).
     </p>
    </li>
   </ul>
  </div>
  <p>
   Those types of information may then be joined within a bank or other
    card-issuing financial institution with client personal data, such
    as:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Full client name (either person or company).
     </p>
    </li>
    <li class="listitem">
     <p>
      Address.
     </p>
    </li>
    <li class="listitem">
     <p>
      Date of birth.
     </p>
    </li>
    <li class="listitem">
     <p>
      Social Security number.
     </p>
    </li>
    <li class="listitem">
     <p>
      Email address.
     </p>
    </li>
    <li class="listitem">
     <p>
      Phone number.
     </p>
    </li>
   </ul>
  </div>
  <p>
   Various employee roles within both the card processing company and
    the financial institution require access to that data. Some of these
    roles may require access only to masked data. Other roles may
    require access to the original data on a case-to-case basis, which
    is recorded in audit logs.
  </p>
  <p>
   Masking and de-identification are core to regulatory compliance, so
    MySQL Enterprise Data Masking and De-Identification can help application developers satisfy privacy
    requirements:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      PCI – DSS: Payment Card Data.
     </p>
    </li>
    <li class="listitem">
     <p>
      HIPAA: Privacy of Health Data, Health Information Technology for
        Economic and Clinical Health Act (HITECH Act).
     </p>
    </li>
    <li class="listitem">
     <p>
      EU General Data Protection Directive (GDPR): Protection of
        Personal Data.
     </p>
    </li>
    <li class="listitem">
     <p>
      Data Protection Act (UK): Protection of Personal Data.
     </p>
    </li>
    <li class="listitem">
     <p>
      Sarbanes Oxley, GLBA, The USA Patriot Act, Identity Theft and
        Assumption Deterrence Act of 1998.
     </p>
    </li>
    <li class="listitem">
     <p>
      FERPA – Student Data, NASD, CA SB1386 and AB 1950, State Data
        Protection Laws, Basel II.
     </p>
    </li>
   </ul>
  </div>
  <p>
   The following sections describe the elements of MySQL Enterprise Data Masking and De-Identification, discuss
    how to install and use it, and provide reference information for its
    elements.
  </p>
 </div>
 <br/>
</div>
