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). See Section 13.5.1.3, « 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.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY "goodsecret"
->REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
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 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";
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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.