| 5.6.7 Utilisation des connexions sécurisées
 5.6 Gestion des comptes utilisateurs de MySQL
 5 Administration du serveur
 Manuel de Référence MySQL 4.1 : Version Française
 
 . Introduction aux connexions sécurisées
 . Pré requis aux connexions sécurisées
 . Configurer les certificats SSL pour MySQL
 ->Options de GRANT avec SSL
 . Options SSL en ligne de commande
 . Connexion à MySQL à distance avec Windows et SSH
 
 
 | 
  5.6.7.4 Options de GRANT avec SSL 
   MySQL peut vérifier les certificats X509 en plus de la combinaisons habituelle
de nom d'utilisateur et mot de passe. Toutes les options habituelles sont
toujours nécessaires (nom d'utilisateur, masque d'adresse IP, 
nom de base de données, nom de table).
 Syntaxe de 
GRANT
 et 
REVOKE
 . 
Voici différentes possibilités pour limiter les connexions : 
 
Sans aucune option SSL ou X509, toutes les connexions chiffrées ou non
chiffrées sont autorisées si le nom d'utilisateur et le mot de passe
sont valides.
L'option  
REQUIRE SSL
  requiert que les connexions soient chiffrées
avec SSL. Notez que cette option peut être omise si il n'y a pas de
ligne ACL qui autorise une connexion sans SSL. 
| 
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost-> IDENTIFIED BY "goodsecret" REQUIRE SSL;
 | 
REQUIRE X509
  impose au client d'avoir un certificat valide, mais 
le certificat lui même est de peu d'importance. La seule restriction est
qu'il doit être possible de vérifier la signature avec une des autorités
de certification. 
| 
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost-> IDENTIFIED BY "goodsecret" REQUIRE X509;
 | 
REQUIRE ISSUER "issuer"
  restreint les tentatives de connexion : 
le client doit se présenter avec un certificat X509 valide, émis par l'
autorité de certification  
"issuer"
 .
Utiliser un certificat X509 implique obligatoirement des chiffrements, donc
l'option  
SSL
  est sous entendue. 
| 
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@mysql.com";
 | 
REQUIRE SUBJECT "subject"
  impose au client d'avoir un certificat X509
valide, avec le sujet  
"subject"
 . Si le client présente un certificat
valide, mais que le  
"subject"
  est différent, la connexion est refusée. 
| 
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@mysql.com";
 | 
REQUIRE CIPHER "cipher"
  est utilisé pour s'assurer que les chiffrements
sont suffisamment robuste, et que la bonne longueur de clé est utilisée. SSL lui
même peut être faible si des algorithmes sont utilisés avec des clés courtes.
En utilisant cette option, il est possible d'imposer la méthode de chiffrement
avec la connexion. 
Les options  
SUBJECT
 ,  
ISSUER
  et  
CIPHER
  peuvent être
combinées avec la clause  
REQUIRE
  comme ceci :| 
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost-> IDENTIFIED BY "goodsecret"
 -> REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
 | 
 Depuis MySQL 4.0.4, le mot clé  
AND
  est optionnel, entre les options
 
REQUIRE
 .L'ordre de ces options n'a pas d'importance, mais aucune option ne peut être
spécifiée deux fois.| 
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@mysql.com"
 -> AND ISSUER "C=FI, ST=Some-State, L=Helsinki,
 "> O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com"
 -> AND CIPHER "EDH-RSA-DES-CBC3-SHA";
 | 
 |