<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h3 class="title">
      <a name="data-masking-components-vs-plugin">
      </a>
      8.5.1 Data-Masking Components Versus the Data-Masking Plugin
     </h3>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045233491696">
  </a>
  <a class="indexterm" name="idm46045233490160">
  </a>
  <p>
   Previously, MySQL enabled masking and de-identification
      capabilities using a server-side plugin, but transitioned to use
      the component infrastructure as an alternative implementation. The
      following table briefly compares MySQL Enterprise Data Masking and De-Identification components and the
      plugin library to provide an overview of their differences. It may
      assist you in making the transition from the plugin to components.
  </p>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    Only the data-masking components or the plugin should be enabled
        at a time. Enabling both components and the plugin is
        unsupported and results may not be as anticipated.
   </p>
  </div>
  <div class="table">
   <a name="data-masking-component-vs-plugin">
   </a>
   <p class="title">
    <b>
     Table 8.45 Comparison Between Data-Masking Components and Plugin Elements
    </b>
   </p>
   <div class="table-contents">
    <table>
     <colgroup>
      <col width="50%"/>
      <col width="25%"/>
      <col width="25%"/>
     </colgroup>
     <thead>
      <tr>
       <th scope="col">
        Category
       </th>
       <th scope="col">
        Components
       </th>
       <th scope="col">
        Plugin
       </th>
      </tr>
     </thead>
     <tbody>
      <tr>
       <td scope="row">
        Interface
       </td>
       <td>
        Service functions, loadable functions
       </td>
       <td>
        Loadable functions
       </td>
      </tr>
      <tr>
       <td scope="row">
        Support for multibyte character sets
       </td>
       <td>
        Yes, for general-purpose masking functions
       </td>
       <td>
        No
       </td>
      </tr>
      <tr>
       <td scope="row">
        General-purpose masking functions
       </td>
       <td>
        <a class="link" href="data-masking-component-functions.html#function_mask-inner">
         <code class="literal">
          mask_inner()
         </code>
        </a>
        ,
        <a class="link" href="data-masking-component-functions.html#function_mask-outer">
         <code class="literal">
          mask_outer()
         </code>
        </a>
       </td>
       <td>
        <a class="link" href="data-masking-plugin-functions.html#function_mask-inner-plugin">
         <code class="literal">
          mask_inner()
         </code>
        </a>
        ,
        <a class="link" href="data-masking-plugin-functions.html#function_mask-outer-plugin">
         <code class="literal">
          mask_outer()
         </code>
        </a>
       </td>
      </tr>
      <tr>
       <td scope="row">
        Masking of specific types
       </td>
       <td>
        PAN, SSN, IBAN, UUID, Canada SIN, UK NIN
       </td>
       <td>
        PAN, SSN
       </td>
      </tr>
      <tr>
       <td scope="row">
        Random generation, specific types
       </td>
       <td>
        email, US phone, PAN, SSN, IBAN, UUID, Canada SIN, UK NIN
       </td>
       <td>
        email, US phone, PAN, SSN
       </td>
      </tr>
      <tr>
       <td scope="row">
        Random generation of integer from given range
       </td>
       <td>
        Yes
       </td>
       <td>
        Yes
       </td>
      </tr>
      <tr>
       <td scope="row">
        Persisting substitution dictionaries
       </td>
       <td>
        Database
       </td>
       <td>
        File
       </td>
      </tr>
      <tr>
       <td scope="row">
        Privilege to manage dictionaries
       </td>
       <td>
        Dedicated privilege
       </td>
       <td>
        FILE
       </td>
      </tr>
      <tr>
       <td scope="row">
        Automated loadable-function registration/deregistration during
            installation/uninstallation
       </td>
       <td>
        Yes
       </td>
       <td>
        No
       </td>
      </tr>
      <tr>
       <td scope="row">
        Enhancements to existing functions
       </td>
       <td>
        More arguments added to the
        <a class="link" href="data-masking-component-functions.html#function_gen-rnd-email">
         <code class="literal">
          gen_rnd_email()
         </code>
        </a>
        function
       </td>
       <td>
        N/A
       </td>
      </tr>
     </tbody>
    </table>
   </div>
   <div class="table-contents">
    <table cellpadding="0" cellspacing="0" style="position: fixed; top: 0px; display: none; left: 401px; width: 739px;">
     <thead>
      <tr>
       <th scope="col" style="width: 369px;">
        Category
       </th>
       <th scope="col" style="width: 184.5px;">
        Components
       </th>
       <th scope="col" style="width: 184.5px;">
        Plugin
       </th>
      </tr>
     </thead>
    </table>
   </div>
  </div>
  <br class="table-break"/>
 </div>
 <br/>
</div>
