MySQL puede comprobar los atributos de un certificado X509
          además de la autentificación usual que se basa en nombre de
          usuario y clave. Para especificar las opciones relacionadas
          con SSL para una cuenta MySQL, utilice la clausula
          REQUIRE de la sentencia
          GRANT. Consulte Sección 13.5.1.3, “Sintaxis de GRANT y REVOKE”.
        
Hay diferentes maneras de limitar los tipos de conexión para una cuenta:
Si una cuenta no tiene requerimientos de SSL o X509, las conexiones sin cifrar se permiten siempre que el nombre de usuario y la clave sean válidas. De cualquier manera, se pueden también utilizar conexiones cifradas, si el cliente tiene los certificados y archivos de claves apropiados.
              La opción REQUIRE SSL limita al
              servidor para que acepte únicamente conexiones cifradas
              SSL para la cuenta. Tenga en cuenta que esta opción puede
              pasarse por alto si hay algún registro ACL que permite
              conexiones no-SSL.
            
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
    -> IDENTIFIED BY 'goodsecret' REQUIRE SSL;
              REQUIRE X509 significa que el cliente
              debe tener un certificado pero que el certificado exacto,
              entidad certificadora y sujeto no importan. El único
              requerimiento es que debería ser posible verificar su
              firma con uno de los certificados CA.
            
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
    -> IDENTIFIED BY 'goodsecret' REQUIRE X509;
              REQUIRE ISSUER 'issuer' coloca una
              restricción en la conexión mediante la cual el cliente
              debe presentar un certificado X509 válido, emitido por la
              CA 'issuer'. Si el cliente presenta un
              certificado que es valido pero tiene un emisor diferente,
              el servidor rechaza la conexión. La utilización de
              certificados X509 siempre implica cifrado, así que la
              opción SSL no es necesaria.
            
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
    -> IDENTIFIED BY 'goodsecret'
    -> REQUIRE ISSUER '/C=FI/ST=Some-State/L=Helsinki/
       O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@example.com';
              Nótese que el valor de ISSUER debe
              introducirse como una única cadena de caracteres.
            
              REQUIRE SUBJECT 'subject' establece la
              restricción a los intentos de conexión de que el cliente
              debe presentar un certificado X509 válido con sujeto
              'subject'. Si el cliente presenta un
              certificado que, aunque válido, tiene un sujeto
              diferente, el servidor rechaza la conexión.
            
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
    -> IDENTIFIED BY 'goodsecret'
    -> REQUIRE SUBJECT '/C=EE/ST=Some-State/L=Tallinn/
       O=MySQL demo client certificate/
       CN=Tonu Samuel/Email=tonu@example.com';
              Nótese que el valor de SUBJECT debe
              ser introducido como una única cadena de caracteres.
            
              REQUIRE CIPHER 'cipher' es necesario
              para asegurar que se utilizan longitudes de cifra y claves
              suficientemente fuertes. El protocolo SSL por sí mismo
              puede ser débil si se utilizan viejos algorimots con
              claves de cifrado cortas. Utilizando esta opción, podemos
              pedir un método exacto de cifrado para permitir una
              conexión.
            
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
    -> IDENTIFIED BY 'goodsecret'
    -> REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA';
          Las opciones SUBJECT,
          ISSUER, y CIPHER pueden
          combinarse en la sentencia REQUIRE de la
          siguiente manera:
        
mysql> GRANT ALL PRIVILEGES ON test.* TO 'root'@'localhost'
    -> IDENTIFIED BY 'goodsecret'
    -> REQUIRE SUBJECT '/C=EE/ST=Some-State/L=Tallinn/
       O=MySQL demo client certificate/
       CN=Tonu Samuel/Email=tonu@example.com'
    -> AND ISSUER '/C=FI/ST=Some-State/L=Helsinki/
       O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@example.com'
    -> AND CIPHER 'EDH-RSA-DES-CBC3-SHA';
          Nótese que los valores de SUBJECT e
          ISSUER deben ser introducidos cada uno como
          una única cadena de caracteres.
        
          En MySQL 5.0, la palabra clave AND es
          opcional entre las opciones de REQUIRE.
        
El orden de las opciones no importa, pero ninguna opción puede ser especificada dos veces.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

