Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL ODBC-Link schlägt fehl, da das Authentifizierungsprotokoll abgelehnt wurde

Das Problem hier war auf zwei gleichzeitige Probleme zurückzuführen.

  1. Auf dem Remote-Server wurde die globale Einstellung OLD_PASSWORDS auf 1 gesetzt – was bedeutet, dass Passwörter in der Methode vor 4.1 gehasht wurden.
  2. der Root-Account war trotz globaler Einstellung im neueren Hashing-Verfahren kodiert worden (vermutlich vor dem Setzen dieses Parameters eingetragen), d.h. es wurde über die ODBC-Verbindung Zugriff gewährt, weil das neue Hashing erkannt wurde.

Die globale Einstellung bewirkte, dass die PASSWORD()-Funktion in MySQL jeden eingegebenen Wert in der alten Methode anstelle der neuen Methode hashte, wie es sollte.

Ich bin davon ausgegangen, dass der DBA OLD_PASSWORDS aus gutem Grund auf 1 gesetzt hat, also habe ich eine Lösung verwendet

Die Verwendung der Funktion password() hat zuvor nicht funktioniert, da die globale Einstellung OLD_PASSWORDS=1 dazu führte, dass sie dasselbe Hashing wie die Funktion OLD_PASSWORD() verwendete. Die Sitzungseinstellung erlaubte es, das richtige Passwort zu erzeugen.