MS ODBC Driver 17 18 invalid authorization
Guten Morgen,
folgende Situation:
ich möchte für eine Software statt dem Native Client 11 den Zugang über den MS ODBC Driver 17 oder 18 konfigurieren.
Das ist mir auf einigen Systemen auch gelungen, und war z.B. die Lösung für ein anderes Problem "Certificate is not from a trusted Root CA". Was da "trusted" ist und warum weiß scheinbar nur Microsoft und sollte mit echten Zertifikaten von einer MS anerkannten Root CA nicht auftreten, und tritt auf wenn man seine RootCA "self signed" hat.
Aber...
auf einigen Systemen bleibe ich mit einem Fehler "invalid authorization specification" Fehler hängen, der laut Microsft den Fehlercode 28000 hat (Anmeldefehler) nur vermutlich aus irgendeiner Fremdsprache falsch ins Englische übersetzt. An der Authentifizierung liegt es aber nicht.
Wie debuggt man sowas?
Bisher konnte ich noch kein Muster erkennen, als Clientmaschinen - Windows 10, Windows 11 und Server 2008R2 kriege ich den Login hin, auf einem anderen Windows 10 und einem Server 2016 nicht.
Einziges Indiz wäre noch daß für den Datenbankzugriff ein leeres Kennwort verwendet wird... was mir noch aufgefallen ist, ist daß die GPOs teilweise fehlerhaft oder garnicht auf den Clients verarbeitet werden, auf einigen fehlte z.B. in der Registry der RootCA eintrag - aber der hat damit nichts zu tun und ändert nur eine Fehlermeldung "Certificate is not trusted" in "Certificate is from an untrusted Root CA"
Der ODBC Driver 17 und höher hat dafür eine Checkbox "Trust Server Certificate", die das Problem definitiv löst bzw umgeht, da ich den Treiber bisher nicht dazu bringen konnte, "unsere" RootCA zu akzeptieren - da das ein Inselnetz ohne Internetanbindung ist und in einer Dummydomäne beheimatet ist gibts nur eine Self signed Root CA.
Ich hab ein paar Mutmaßungen dazu gefunden, z.B. gibt es bei Microsoft eine Root Gruppe, der Unternehmen angehören müssen damit Microsoft deren Root CA als vertrauenswürdig einstuft, so wie auch Google und andere Browserhersteller das eigenmächtig entscheiden.
folgende Situation:
ich möchte für eine Software statt dem Native Client 11 den Zugang über den MS ODBC Driver 17 oder 18 konfigurieren.
Das ist mir auf einigen Systemen auch gelungen, und war z.B. die Lösung für ein anderes Problem "Certificate is not from a trusted Root CA". Was da "trusted" ist und warum weiß scheinbar nur Microsoft und sollte mit echten Zertifikaten von einer MS anerkannten Root CA nicht auftreten, und tritt auf wenn man seine RootCA "self signed" hat.
Aber...
auf einigen Systemen bleibe ich mit einem Fehler "invalid authorization specification" Fehler hängen, der laut Microsft den Fehlercode 28000 hat (Anmeldefehler) nur vermutlich aus irgendeiner Fremdsprache falsch ins Englische übersetzt. An der Authentifizierung liegt es aber nicht.
Wie debuggt man sowas?
Bisher konnte ich noch kein Muster erkennen, als Clientmaschinen - Windows 10, Windows 11 und Server 2008R2 kriege ich den Login hin, auf einem anderen Windows 10 und einem Server 2016 nicht.
Einziges Indiz wäre noch daß für den Datenbankzugriff ein leeres Kennwort verwendet wird... was mir noch aufgefallen ist, ist daß die GPOs teilweise fehlerhaft oder garnicht auf den Clients verarbeitet werden, auf einigen fehlte z.B. in der Registry der RootCA eintrag - aber der hat damit nichts zu tun und ändert nur eine Fehlermeldung "Certificate is not trusted" in "Certificate is from an untrusted Root CA"
Der ODBC Driver 17 und höher hat dafür eine Checkbox "Trust Server Certificate", die das Problem definitiv löst bzw umgeht, da ich den Treiber bisher nicht dazu bringen konnte, "unsere" RootCA zu akzeptieren - da das ein Inselnetz ohne Internetanbindung ist und in einer Dummydomäne beheimatet ist gibts nur eine Self signed Root CA.
Ich hab ein paar Mutmaßungen dazu gefunden, z.B. gibt es bei Microsoft eine Root Gruppe, der Unternehmen angehören müssen damit Microsoft deren Root CA als vertrauenswürdig einstuft, so wie auch Google und andere Browserhersteller das eigenmächtig entscheiden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61786533423
Url: https://administrator.de/contentid/61786533423
Ausgedruckt am: 21.11.2024 um 15:11 Uhr
5 Kommentare
Neuester Kommentar
Hi,
hilft das ?
If you are using a self-signed certificate and the Force Encryption setting on the server to ensure clients connect with encryption, you will need to do one of the following (in order of recommendation):
Change to a certificate that is trusted as part of the client's trust chain.
Add the self-signed certificate as a trusted certificate on the client.
Change your client's TrustServerCertificate connection string setting (or connection property) to yes.
https://techcommunity.microsoft.com/t5/sql-server-blog/odbc-driver-18-0- ...
hilft das ?
If you are using a self-signed certificate and the Force Encryption setting on the server to ensure clients connect with encryption, you will need to do one of the following (in order of recommendation):
Change to a certificate that is trusted as part of the client's trust chain.
Add the self-signed certificate as a trusted certificate on the client.
Change your client's TrustServerCertificate connection string setting (or connection property) to yes.
https://techcommunity.microsoft.com/t5/sql-server-blog/odbc-driver-18-0- ...
Hallo GrueneSosseMitSpeck,
der Beitrag steht zwar auf gelöst, aber im letzten Eintrag steht, Du hast noch keine Lösung. Also keine Ahnung, ob Du die Anregung noch brauchst.
Weil Du oben geschrieben hast "Wie debuggt man sowas?": Ich würde das mit dem Profiler und den Audit Events angehen, Login, Login Failed, ...
Außerdem mal an einem Rechner anmelden mit SQL Server- und Windowsanmeldung, von dem aus das funktioniert und an einem, an dem das nicht funktioniert und dann in den Systemtabellen schauen, was drin steht, vor allem sys.dm_exec_sessions fällt mir da ein.
Gruß, Mad Max
der Beitrag steht zwar auf gelöst, aber im letzten Eintrag steht, Du hast noch keine Lösung. Also keine Ahnung, ob Du die Anregung noch brauchst.
Weil Du oben geschrieben hast "Wie debuggt man sowas?": Ich würde das mit dem Profiler und den Audit Events angehen, Login, Login Failed, ...
Außerdem mal an einem Rechner anmelden mit SQL Server- und Windowsanmeldung, von dem aus das funktioniert und an einem, an dem das nicht funktioniert und dann in den Systemtabellen schauen, was drin steht, vor allem sys.dm_exec_sessions fällt mir da ein.
Gruß, Mad Max