Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL ODBC Link échoue en raison du refus du protocole d'authentification

Le problème ici était dû à deux problèmes simultanés.

  1. Sur le serveur distant, le paramètre global OLD_PASSWORDS était défini sur 1, ce qui signifie que les mots de passe étaient hachés dans la méthode antérieure à la version 4.1.
  2. le compte root avait été encodé dans la nouvelle méthode de hachage malgré le paramètre global (vraisemblablement, il avait été saisi avant que ce paramètre ne soit défini), ce qui signifie qu'il était autorisé à accéder via la connexion ODBC car le nouveau hachage était beign reconnu.

Le paramètre global a amené la fonction PASSWORD() dans MySQL à hacher toute valeur entrée dans l'ancienne méthode au lieu de la nouvelle méthode comme elle était censée le faire.

J'ai supposé que le DBA avait défini OLD_PASSWORDS sur 1 pour une bonne raison, donc comme solution que j'ai utilisée

L'utilisation de la fonction password() n'avait pas fonctionné auparavant car le paramètre global OLD_PASSWORDS=1 l'obligeait à utiliser le même hachage que la fonction OLD_PASSWORD(). Le paramètre de session lui a permis de produire le mot de passe correct.