É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.
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 .
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.
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.