<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h3 class="title">
      <a name="connection-control">
      </a>
      8.4.2 The Connection-Control Plugins
     </h3>
    </div>
   </div>
  </div>
  <div class="toc">
   <dl class="toc">
    <dt>
     <span class="section">
      <a href="connection-control-installation.html">
       8.4.2.1 Connection-Control Plugin Installation
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="connection-control-variables.html">
       8.4.2.2 Connection-Control System and Status Variables
      </a>
     </span>
    </dt>
   </dl>
  </div>
  <p>
   MySQL Server includes a plugin library that enables administrators
      to introduce an increasing delay in server response to connection
      attempts after a configurable number of consecutive failed
      attempts. This capability provides a deterrent that slows down
      brute force attacks against MySQL user accounts. The plugin
      library contains two plugins:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <code class="literal">
       CONNECTION_CONTROL
      </code>
      checks incoming
          connection attempts and adds a delay to server responses as
          necessary. This plugin also exposes system variables that
          enable its operation to be configured and a status variable
          that provides rudimentary monitoring information.
     </p>
     <p>
      The
      <code class="literal">
       CONNECTION_CONTROL
      </code>
      plugin uses the
          audit plugin interface (see
      <a class="ulink" href="/doc/extending-mysql/8.4/en/writing-audit-plugins.html" target="_top">
       Writing Audit Plugins
      </a>
      ). To collect
          information, it subscribes to the
      <code class="literal">
       MYSQL_AUDIT_CONNECTION_CLASSMASK
      </code>
      event
          class, and processes
      <code class="literal">
       MYSQL_AUDIT_CONNECTION_CONNECT
      </code>
      and
      <code class="literal">
       MYSQL_AUDIT_CONNECTION_CHANGE_USER
      </code>
      subevents to check whether the server should introduce a delay
          before responding to connection attempts.
     </p>
    </li>
    <li class="listitem">
     <p>
      <code class="literal">
       CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS
      </code>
      implements an
      <code class="literal">
       INFORMATION_SCHEMA
      </code>
      table that
          exposes more detailed monitoring information for failed
          connection attempts.
     </p>
    </li>
   </ul>
  </div>
  <p>
   The following sections provide information about
      connection-control plugin installation and configuration. For
      information about the
   <a class="link" href="information-schema-connection-control-failed-login-attempts-table.html" title="28.6.2 The INFORMATION_SCHEMA CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS Table">
    <code class="literal">
     CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS
    </code>
   </a>
   table, see
   <a class="xref" href="information-schema-connection-control-failed-login-attempts-table.html" title="28.6.2 The INFORMATION_SCHEMA CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS Table">
    Section 28.6.2, “The INFORMATION_SCHEMA CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS Table”
   </a>
   .
  </p>
 </div>
 <br/>
</div>
