web-dev-qa-db-fra.com

Comment supprimer correctement "REQUIRE SSL" d'un seul utilisateur?

J'ai accordé avec succès REQUIRE SSL à un seul utilisateur en faisant ...

mysql -u"${targetMySqlUser}" -p"${targetMySqlPass}" -e "GRANT USAGE ON dbname.* TO 'dbusername'@'%' REQUIRE SSL;"

mais je ne parviens pas à SUPPRIMER ou à RÉVOQUER ce drapeau de l'utilisateur, en utilisant la révocation. je suppose que je me bats avec la syntaxe. Existe-t-il un moyen approprié de le supprimer avec la commande "revoke", sans révoquer l'autorisation complète?

Le manuel MySQL 5.5, ce site et les interwebs ne m'ont pas encore aidé à trouver une contre-voie appropriée.

Cette instruction SQL fonctionnera.

UPDATE mysql.user SET ssl_type = '' WHERE ssl_type = 'any' ; FLUSH PRIVILEGES;

mais je crois où est un GRANT REQUIRE SSL il me faut un REVOKE REQUIRE SSL, n'est-ce pas?

8
Axel Werner

Ce que vous recherchez n'existe pas dans MySQL 5.5

Malheureusement, la commande ALTER USER pour MySQL 5.6 est limitée. Tout ce que vous pouvez faire, c'est

ALTER USER user@Host PASSWORD EXPIRE;

Dans MySQL 5.7, vous pouvez exécuter la commande ALTER USER comme suit

ALTER USER user@Host REQUIRE NONE;

En ce qui concerne MySQL 5.5, vous avez fait le plus rapidement possible. Génial !!!

Une manière plus politiquement correcte aurait été de procéder comme suit:

DROP USER user@Host;
CREATE USER user@Host;
GRANT ... on ... TO user@Host IDENTIFIED BY '...';

Sinon, je vous félicite d'avoir fait ce qui était nécessaire.

7
RolandoMySQLDBA

Ce fut l'un des résultats de Google lorsque j'ai voulu supprimer REQUIRE SSL sur un utilisateur MySQL que j'ai appliqué. Ce que j'ai fait était de faireREQUIRE NONE sur USAGE

GRANT USAGE ON dbname.* TO 'dbusername'@'%' REQUIRE NONE;

Vérifiez si les paramètres ont été modifiés en exécutant

SHOW GRANTS FOR 'dbusername'@'%' ;

A travaillé sur MySQL 5.6

6
Abey