<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h4 class="title">
      <a name="keyring-oci-component">
      </a>
      8.4.4.9 Using the Oracle Cloud Infrastructure Vault Keyring Component
     </h4>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045240117632">
  </a>
  <a class="indexterm" name="idm46045240116624">
  </a>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    The Oracle Cloud Infrastructure Vault keyring component is included in MySQL Enterprise Edition, a
          commercial product. To learn more about commercial products,
          see
    <a class="ulink" href="https://www.mysql.com/products/" target="_blank">
     https://www.mysql.com/products/
    </a>
    .
   </p>
  </div>
  <p>
   <code class="literal">
    component_keyring_oci
   </code>
   is part of the
        component infrastructure that communicates with Oracle Cloud Infrastructure Vault for
        back end storage. No key information is permanently stored in
        MySQL server local storage. All keys are stored in Oracle Cloud Infrastructure Vault,
        making this component well suited for Oracle Cloud Infrastructure MySQL customers for
        management of their MySQL Enterprise Edition keys.
  </p>
  <p>
   MySQL Keyring began transitioning from plugins to use the
        component infrastructure. The introduction of
   <code class="literal">
    component_keyring_oci
   </code>
   is a continuation of
        that effort. For more information, see
   <a class="link" href="keyring-component-plugin-comparison.html" title="8.4.4.1 Keyring Components Versus Keyring Plugins">
    Keyring
        Components Versus Keyring Plugins
   </a>
   .
  </p>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    Only one keyring component or plugin should be enabled at a
          time. Enabling multiple keyring components or plugins is
          unsupported and results may not be as anticipated.
   </p>
  </div>
  <p>
   To use
   <code class="literal">
    component_keyring_oci
   </code>
   for keystore
        management, you must:
  </p>
  <div class="orderedlist">
   <ol class="orderedlist" type="1">
    <li class="listitem">
     <p>
      Write a manifest that tells the server to load
      <code class="literal">
       component_keyring_oci
      </code>
      , as described in
      <a class="xref" href="keyring-component-installation.html" title="8.4.4.2 Keyring Component Installation">
       Section 8.4.4.2, “Keyring Component Installation”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Write a configuration file for
      <code class="literal">
       component_keyring_oci
      </code>
      , as described here.
     </p>
    </li>
   </ol>
  </div>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <a class="xref" href="keyring-oci-component.html#keyring-oci-component-configure" title="Configuration Notes">
       Configuration Notes
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="keyring-oci-component.html#keyring-oci-component-verify" title="Verify the Component Installation">
       Verify the Component Installation
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="keyring-oci-component.html#keyring-oci-component-usage" title="Vault Keyring Component Usage">
       Vault Keyring Component Usage
      </a>
     </p>
    </li>
   </ul>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="keyring-oci-component-configure">
       </a>
       Configuration Notes
      </h5>
     </div>
    </div>
   </div>
   <p>
    When it initializes,
    <code class="literal">
     component_keyring_oci
    </code>
    reads either a global configuration file, or a global
          configuration file paired with a local configuration file:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       The component attempts to read its global configuration
              file from the directory where the component library file
              is installed (that is, the server plugin directory).
      </p>
     </li>
     <li class="listitem">
      <p>
       If the global configuration file indicates use of a local
              configuration file, the component attempts to read its
              local configuration file from the data directory.
      </p>
     </li>
     <li class="listitem">
      <p>
       Although global and local configuration files are located
              in different directories, the file name is
       <code class="filename">
        component_keyring_oci.cnf
       </code>
       in both
              locations.
      </p>
     </li>
     <li class="listitem">
      <p>
       It is an error for no configuration file to exist.
       <code class="literal">
        component_keyring_oci
       </code>
       cannot initialize
              without a valid configuration.
      </p>
     </li>
    </ul>
   </div>
   <p>
    Local configuration files permit setting up multiple server
          instances to use
    <code class="literal">
     component_keyring_oci
    </code>
    ,
          such that component configuration for each server instance is
          specific to a given data directory instance. This enables the
          same keyring component to be used with a distinct Oracle Cloud Infrastructure Vault
          for each instance.
   </p>
   <a class="indexterm" name="idm46045240089680">
   </a>
   <p>
    You are assumed to be familiar with Oracle Cloud Infrastructure concepts, but the
          following documentation may be helpful when setting up
          resources to be used by
    <code class="literal">
     component_keyring_oci
    </code>
    :
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <a class="ulink" href="https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm" target="_blank">
        Overview
              of Vault
       </a>
      </p>
     </li>
     <li class="listitem">
      <p>
       <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm" target="_blank">
        Required
              Keys and OCIDs
       </a>
      </p>
     </li>
     <li class="listitem">
      <p>
       <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingkeys.htm" target="_blank">
        Managing
              Keys
       </a>
      </p>
     </li>
     <li class="listitem">
      <p>
       <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/managingcompartments.htm" target="_blank">
        Managing
              Compartments
       </a>
      </p>
     </li>
     <li class="listitem">
      <p>
       <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingvaults.htm" target="_blank">
        Managing
              Vaults
       </a>
      </p>
     </li>
     <li class="listitem">
      <p>
       <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingsecrets.htm" target="_blank">
        Managing
              Secrets
       </a>
      </p>
     </li>
    </ul>
   </div>
   <p>
    <code class="literal">
     component_keyring_oci
    </code>
    configuration files
          have these properties:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       A configuration file must be in valid JSON format.
      </p>
     </li>
     <li class="listitem">
      <p>
       A configuration file permits these configuration items:
      </p>
      <div class="itemizedlist">
       <ul class="itemizedlist" style="list-style-type: circle; ">
        <li class="listitem">
         <p>
          <code class="literal">
           "read_local_config"
          </code>
          : This item is
                  permitted only in the global configuration file. If
                  the item is not present, the component uses only the
                  global configuration file. If the item is present, its
                  value is
          <code class="literal">
           true
          </code>
          or
          <code class="literal">
           false
          </code>
          , indicating whether the
                  component should read configuration information from
                  the local configuration file.
         </p>
         <p>
          If the
          <code class="literal">
           "read_local_config"
          </code>
          item is
                  present in the global configuration file along with
                  other items, the component checks the
          <code class="literal">
           "read_local_config"
          </code>
          item value
                  first:
         </p>
         <div class="itemizedlist">
          <ul class="itemizedlist" style="list-style-type: square; ">
           <li class="listitem">
            <p>
             If the value is
             <code class="literal">
              false
             </code>
             , the
                      component processes the other items in the global
                      configuration file and ignores the local
                      configuration file.
            </p>
           </li>
           <li class="listitem">
            <p>
             If the value is
             <code class="literal">
              true
             </code>
             , the
                      component ignores the other items in the global
                      configuration file and attempts to read the local
                      configuration file.
            </p>
           </li>
          </ul>
         </div>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “user”
          </code>
          : The OCID of the Oracle Cloud Infrastructure
                  user that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for connections. Prior to using
          <code class="literal">
           component_keyring_oci
          </code>
          , the user
                  account must exist and be granted access to use the
                  configured Oracle Cloud Infrastructure tenancy, compartment, and vault
                  resources. To obtain the user OCID from the Console,
                  use the instructions at
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm" target="_blank">
           Required
                  Keys and OCIDs
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “tenancy”
          </code>
          : The OCID of the
                  Oracle Cloud Infrastructure tenancy that
          <code class="literal">
           component_keyring_oci
          </code>
          uses as the
                  location of the MySQL compartment. Prior to using
          <code class="literal">
           component_keyring_oci
          </code>
          , you must
                  create a tenancy if it does not exist. To obtain the
                  tenancy OCID from the Console, use the instructions at
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm" target="_blank">
           Required
                  Keys and OCIDs
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “compartment”
          </code>
          : The OCID of the
                  tenancy compartment that
          <code class="literal">
           component_keyring_oci
          </code>
          uses as the
                  location of the MySQL keys. Prior to using
          <code class="literal">
           component_keyring_oci
          </code>
          , you must
                  create a MySQL compartment or subcompartment if it
                  does not exist. This compartment should contain no
                  vault keys or vault secrets. It should not be used by
                  systems other than MySQL Keyring. For information
                  about managing compartments and obtaining the OCID,
                  see
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/managingcompartments.htm" target="_blank">
           Managing
                  Compartments
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “virtual_vault”
          </code>
          : The OCID of
                  the Oracle Cloud Infrastructure Vault that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  encryption operations. Prior to using
          <code class="literal">
           component_keyring_oci
          </code>
          , you must
                  create a new vault in the MySQL compartment if it does
                  not exist. (Alternatively, you can reuse an existing
                  vault that is in a parent compartment of the MySQL
                  compartment.) Compartment users can see and use only
                  the keys in their respective compartments. For
                  information about creating a vault and obtaining the
                  vault OCID, see
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingvaults.htm" target="_blank">
           Managing
                  Vaults
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “encryption_endpoint”
          </code>
          : The
                  endpoint of the Oracle Cloud Infrastructure encryption server that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  generating encrypted or encoded information
                  (ciphertext) for new keys. The encryption endpoint is
                  vault specific and Oracle Cloud Infrastructure assigns it at vault-creation
                  time. To obtain the endpoint OCID, view the
                  configuration details for your keyring_oci vault,
                  using the instructions at
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingvaults.htm" target="_blank">
           Managing
                  Vaults
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           "management_endpoint"
          </code>
          : The endpoint
                  of the Oracle Cloud Infrastructure key management server that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  listing existing keys. The key management endpoint is
                  vault specific and Oracle Cloud Infrastructure assigns it at vault-creation
                  time. To obtain the endpoint OCID, view the
                  configuration details for your keyring_oci vault,
                  using the instructions at
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingvaults.htm" target="_blank">
           Managing
                  Vaults
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “vaults_endpoint”
          </code>
          : The endpoint
                  of the Oracle Cloud Infrastructure vaults server that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  obtaining the value of secrets. The vaults endpoint is
                  vault specific and Oracle Cloud Infrastructure assigns it at vault-creation
                  time. To obtain the endpoint OCID, view the
                  configuration details for your keyring_oci vault,
                  using the instructions at
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingvaults.htm" target="_blank">
           Managing
                  Vaults
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “secrets_endpoint”
          </code>
          : The
                  endpoint of the Oracle Cloud Infrastructure secrets server that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  listing, creating, and retiring secrets. The secrets
                  endpoint is vault specific and Oracle Cloud Infrastructure assigns it at
                  vault-creation time. To obtain the endpoint OCID, view
                  the configuration details for your keyring_oci vault,
                  using the instructions at
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingvaults.htm" target="_blank">
           Managing
                  Vaults
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “master_key”
          </code>
          : The OCID of the
                  Oracle Cloud Infrastructure master encryption key that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  encryption of secrets. Prior to using
          <code class="literal">
           component_keyring_oci
          </code>
          , you must
                  create a cryptographic key for the Oracle Cloud Infrastructure compartment
                  if it does not exist. Provide a MySQL-specific name
                  for the generated key and do not use it for other
                  purposes. For information about key creation, see
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingkeys.htm" target="_blank">
           Managing
                  Keys
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “key_file”
          </code>
          : The path name of
                  the file containing the RSA private key that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  Oracle Cloud Infrastructure authentication. You must also upload the
                  corresponding RSA public key using the Console. The
                  Console displays the key fingerprint value, which you
                  can use to set the
          <code class="literal">
           "key_fingerprint"
          </code>
          value. For
                  information about generating and uploading API keys,
                  see
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm" target="_blank">
           Required
                  Keys and OCIDs
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “key_fingerprint”
          </code>
          : The
                  fingerprint of the RSA private key that
          <code class="literal">
           component_keyring_oci
          </code>
          uses for
                  Oracle Cloud Infrastructure authentication. To obtain the key fingerprint
                  while creating the API keys, execute this command:
         </p>
         <div class="copytoclipboard-wrapper">
          <pre class="programlisting one-line language-terminal"><div class="docs-select-all right" id="sa60373711"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">openssl rsa <span class="token property">-pubout</span> <span class="token property">-outform</span> DER <span class="token property">-in</span> ~/<span class="token punctuation">.</span>oci/oci_api_key<span class="token punctuation">.</span>pem | openssl md5 <span class="token property">-c</span></code></pre>
         </div>
         <p>
          Alternatively, obtain the fingerprint from the
                  Console, which automatically displays the fingerprint
                  when you upload the RSA public key. For information
                  about obtaining key fingerprints, see
          <a class="ulink" href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm" target="_blank">
           Required
                  Keys and OCIDs
          </a>
          .
         </p>
         <p>
          This value is mandatory.
         </p>
        </li>
        <li class="listitem">
         <p>
          <code class="literal">
           “ca_certificate”
          </code>
          : The path name
                  of the CA certificate bundle file that
          <code class="literal">
           component_keyring_oci
          </code>
          component
                  uses for Oracle Cloud Infrastructure certificate verification. The file
                  contains one or more certificates for peer
                  verification. If no file is specified, the default CA
                  bundle installed on the system is used. If the value
                  is set to
          <code class="literal">
           disabled
          </code>
          (case-sensitive),
          <code class="literal">
           component_keyring_oci
          </code>
          performs no
                  certificate verification.
         </p>
        </li>
       </ul>
      </div>
     </li>
    </ul>
   </div>
   <p>
    Given the preceding configuration file properties, to
          configure
    <code class="literal">
     component_keyring_oci
    </code>
    , create a
          global configuration file named
    <code class="filename">
     component_keyring_oci.cnf
    </code>
    in the
          directory where the
    <code class="literal">
     component_keyring_oci
    </code>
    library file is installed, and optionally create a local
          configuration file, also named
    <code class="filename">
     component_keyring_oci.cnf
    </code>
    , in the data
          directory.
   </p>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="keyring-oci-component-verify">
       </a>
       Verify the Component Installation
      </h5>
     </div>
    </div>
   </div>
   <p>
    After performing any component-specific configuration, start
          the server. Verify component installation by examining the
          Performance Schema
    <a class="link" href="performance-schema-keyring-component-status-table.html" title="29.12.18.1 The keyring_component_status Table">
     <code class="literal">
      keyring_component_status
     </code>
    </a>
    table:
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa27381260"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token prompt">mysql&gt;</span> <span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">FROM</span> performance_schema<span class="token punctuation">.</span>keyring_component_status<span class="token punctuation">;</span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> STATUS_KEY          <span class="token punctuation">|</span> STATUS_VALUE                                                       <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> Component_name      <span class="token punctuation">|</span> component_keyring_oci                                              <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> Author              <span class="token punctuation">|</span> Oracle Corporation                                                 <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> License             <span class="token punctuation">|</span> PROPRIETARY                                                        <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> Implementation_name <span class="token punctuation">|</span> component_keyring_oci                                              <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> Version             <span class="token punctuation">|</span> 1.0                                                                <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> Component_status    <span class="token punctuation">|</span> Active                                                             <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> user                <span class="token punctuation">|</span> ocid1.user.oc1..aaaaaaaasqly&lt;...&gt;                                  <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> tenancy             <span class="token punctuation">|</span> ocid1.tenancy.oc1..aaaaaaaai&lt;...&gt;                                  <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> compartment         <span class="token punctuation">|</span> ocid1.compartment.oc1..aaaaaaaah2swh&lt;...&gt;                          <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> virtual_vault       <span class="token punctuation">|</span> ocid1.vault.oc1.iad.bbo5xyzkaaeuk.abuwcljtmvxp4r&lt;...&gt;              <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> master_key          <span class="token punctuation">|</span> ocid1.key.oc1.iad.bbo5xyzkaaeuk.abuwcljrbsrewgap&lt;...&gt;              <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> encryption_endpoint <span class="token punctuation">|</span> bbo5xyzkaaeuk<span class="token punctuation">-</span>crypto.kms.us<span class="token punctuation">-</span>&lt;...&gt;                                  <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> management_endpoint <span class="token punctuation">|</span> bbo5xyzkaaeuk<span class="token punctuation">-</span>management.kms.us<span class="token punctuation">-</span>&lt;...&gt;                              <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> vaults_endpoint     <span class="token punctuation">|</span> vaults.us<span class="token punctuation">-</span>&lt;...&gt;                                                    <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> secrets_endpoint    <span class="token punctuation">|</span> secrets.vaults.us<span class="token punctuation">-</span>&lt;...&gt;                                            <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> key_file            <span class="token punctuation">|</span> ~/.oci/oci_api_key.pem                                             <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> key_fingerprint     <span class="token punctuation">|</span> ca:7c:e1:fa:86:b6:40:af:39:d6&lt;...&gt;                                 <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> ca_certificate      <span class="token punctuation">|</span> disabled                                                           <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span></code></pre>
   </div>
   <p>
    A
    <code class="literal">
     Component_status
    </code>
    value of
    <code class="literal">
     Active
    </code>
    indicates that the component
          initialized successfully.
   </p>
   <p>
    If the component cannot be loaded, server startup fails. Check
          the server error log for diagnostic messages. If the component
          loads but fails to initialize due to configuration problems,
          the server starts but the
    <code class="literal">
     Component_status
    </code>
    value is
    <code class="literal">
     Disabled
    </code>
    . Check the server error
          log, correct the configuration issues, and use the
    <a class="link" href="alter-instance.html#alter-instance-reload-keyring">
     <code class="literal">
      ALTER INSTANCE RELOAD KEYRING
     </code>
    </a>
    statement to reload the configuration.
   </p>
   <p>
    It is possible to query MySQL server for the list of existing
          keys. To see which keys exist, examine the Performance Schema
    <a class="link" href="performance-schema-keyring-keys-table.html" title="29.12.18.2 The keyring_keys table">
     <code class="literal">
      keyring_keys
     </code>
    </a>
    table.
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa92794516"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token prompt">mysql&gt;</span> <span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">FROM</span> performance_schema<span class="token punctuation">.</span>keyring_keys<span class="token punctuation">;</span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> KEY_ID                      <span class="token punctuation">|</span> KEY_OWNER    <span class="token punctuation">|</span> BACKEND_KEY_ID <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> audit_log<span class="token punctuation">-</span>20210322T130749<span class="token punctuation">-</span>1 <span class="token punctuation">|</span>              <span class="token punctuation">|</span>                <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> MyKey                       <span class="token punctuation">|</span> me@localhost <span class="token punctuation">|</span>                <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> YourKey                     <span class="token punctuation">|</span> me@localhost <span class="token punctuation">|</span>                <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span></code></pre>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="keyring-oci-component-usage">
       </a>
       Vault Keyring Component Usage
      </h5>
     </div>
    </div>
   </div>
   <p>
    <code class="literal">
     component_keyring_oci
    </code>
    supports the
          functions that comprise the standard MySQL Keyring service
          interface. Keyring operations performed by those functions are
          accessible in SQL statements as described in
    <a class="xref" href="keyring-functions-general-purpose.html" title="8.4.4.12 General-Purpose Keyring Key-Management Functions">
     Section 8.4.4.12, “General-Purpose Keyring Key-Management Functions”
    </a>
    .
   </p>
   <p>
    Example:
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa67182112"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SELECT</span> keyring_key_generate<span class="token punctuation">(</span><span class="token string">'MyKey'</span><span class="token punctuation">,</span> <span class="token string">'AES'</span><span class="token punctuation">,</span> <span class="token number">32</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">SELECT</span> keyring_key_remove<span class="token punctuation">(</span><span class="token string">'MyKey'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
   </div>
   <p>
    For information about the characteristics of key values
          permitted by
    <code class="literal">
     component_keyring_oci
    </code>
    , see
    <a class="xref" href="keyring-key-types.html" title="8.4.4.10 Supported Keyring Key Types and Lengths">
     Section 8.4.4.10, “Supported Keyring Key Types and Lengths”
    </a>
    .
   </p>
  </div>
 </div>
 <br/>
</div>
