Mit dem Jan 2021 CPU für Oracle 19c (=19.10) und 18c (=18.13) hat Oracle still und heimlich NTLM - NT LAN Manager Support deaktiviert. Dass NTLM als "deprecated" eingestuft wird, hat Oracle schon mit Oracle 12.1 verkündet - nur hatte es bis jetzt keine Konsequenzen! Mit Oracle 12.1 wurde auch eine neue Einstellung für die Clients in der Datei SQLNET.ORA eingeführt - NO_NTLM mit dem Default FALSE. Somit konnte man schon ab Oracle 12.1 die NTLM Authentifizierung deaktivieren.
Was hat sich mit Oracle 19.10 jetzt geändert?
Der Default für NO_NTLM wurde auf TRUE geändert, und schon bekommen Clients - oder Windows Datenbanken, die über SQLNET auf andere Windows Datenbanken zugreifen wollen - folgenden Fehler:
sqlplus user/pw@my1910db
ORA-12638: Credential retrieval failed
Was kann man jetzt machen, dass die Verbindung wieder funktioniert?
Einfach in der Datei SQLNET.ORA am CLIENT folgenden Eintrag einfügen:
NO_NTLM=FALSE
und schon funktioniert alles wieder.
Warum hat Oracle den Default gerade jetzt geändert?
Der Auslöser war letztendlich der Security Patch für CVE-2021-2018. Der Workaround öffnet somit leider ein Security Leak. Die einzige wirkliche Lösung ist, dass man die Windows Datenbank Server beispielsweise durch Linux Server ersetzt.