web-dev-qa-db-fra.com

Comment exiger SSL pour tous les utilisateurs distants

Étant donné un système MySQL avec plusieurs utilisateurs distants (utilisateurs du formulaire 'joecool'@'192.168.1.2'); existe-t-il une instruction SQL que je peux utiliser pour REQUIRE SSL pour tous les utilisateurs distants?

La commande mono-utilisateur est:

GRANT USAGE ON *.* TO 'joecool'@'192.168.1.2' REQUIRE SSL;

Une version "tous utilisateurs" serait particulièrement utile car phpMyAdmin ne prend pas en charge l'indicateur SSL REQUIS lors de la création ou de la modification d'utilisateurs.

26
docwhat

La réponse (autrefois) acceptée par Honza semble incorrecte, voir ses commentaires. Il ne semble pas possible d'utiliser une requête GRANT pour modifier plusieurs utilisateurs à la fois depuis MySQL ne prend pas en charge les caractères génériques pour les noms d'utilisateur .

Comme vous l'avez suggéré, vous pouvez modifier les enregistrements dans le mysql.user table directement à l'aide d'une requête UPDATE et comme l'a suggéré Marc Delisle, vider ensuite les privilèges avec:

FLUSH PRIVILEGES;

Voir aussi dba.stackexchange.com> Comment accorder des privilèges à plusieurs utilisateurs .

12
lmeurs

Oui, vous pouvez modifier directement la table mysql.user (attention). Ensuite, vous émettez simplement une instruction FLUSH PRIVILEGES pour appliquer les modifications au serveur en cours d'exécution.

3
Marc Delisle

Vous pouvez configurer mysqld avec require_secure_transport .

[mysqld]
...
ssl-ca = ...
ssl-cert = ...
ssl-key = ...
...
require-secure-transport = ON

Cette capacité complète les exigences SSL par compte, qui ont priorité. Par exemple, si un compte est défini avec REQUIRE SSL, l'activation de require_secure_transport ne permet pas d'utiliser le compte pour se connecter à l'aide d'un fichier socket Unix.

3
Italo Borssatto