Normen und Spezifikationen (Referenz)
Auf welchen Normen und Herstellerspezifikationen der Treiber beruht, was jede davon verlangt, wie der Treiber es umsetzt und wo seine Grenzen liegen. Sie brauchen diese Seite, wenn Sie beurteilen, ob der Treiber mit einem Dienst oder einer Anwendung zusammenarbeitet, oder wenn Sie die Herkunft einer Anforderung nachprüfen.
Art der Quellen
Keine der Quellen ist für den Betreiber gesetzlich verbindlich. Sie unterscheiden sich darin, wie weit Zusammenarbeit von ihnen abhängt:
| Art | Bedeutung für den Treiber |
|---|---|
| Protokollnorm (OASIS-Standard, RFC auf dem Standardweg) | Weicht der Treiber ab, versteht ihn ein normgerechter Dienst nicht. Verbindlich für die Zusammenarbeit |
| Herstellerspezifikation (ODBC von Microsoft) | ODBC-Anwendungen und der Treibermanager von Windows verlassen sich darauf. Verbindlich für die Zusammenarbeit |
| Informatives RFC, Entwurf der IETF | Beschreibt ein verbreitetes Verfahren ohne Normstatus; der Treiber folgt ihm, ein Dienst muss es nicht |
Eigene Erweiterung (Vokabular Wkl.Store.V1, Kopfzeilen X-Wkl-…) | Entwurfsentscheidung dieses Produkts; ein fremder Dienst kennt sie nicht, und der Treiber kommt ohne sie aus |
Quellen und ihre Umsetzung
| Quelle | Art | Was sie festlegt, soweit der Treiber betroffen ist | Umsetzung im Treiber | Grenzen |
|---|---|---|---|---|
| ODBC-Programmierreferenz, ODBC 3.x | Herstellerspezifikation | Funktionen, Handles, Diagnosesätze, SQLSTATE je Funktion; die Form der Verbindungszeichenfolge; IM… nur für den Treibermanager | meldet SQL_DRIVER_ODBC_VER 03.51 und die Schnittstellenstufe 1 (SQL_ODBC_API_CONFORMANCE); Funktionen in der Unicode-Form (…W), die ANSI-Form übersetzt der Treibermanager; Cursor nur vorwärts; SQLSTATE 08001/28000 statt IM002 | Ausgabeparameter, mehrere Ergebnismengen und Deskriptorfelder werden nicht unterstützt (siehe Grenzen) |
| ODBC Escape Sequences | Herstellerspezifikation | herstellerneutrale Literale, Funktionen, Verbünde und Prozeduraufrufe in Klammern | {d}, {t}, {ts}, {guid}, {escape} übersetzt | {fn}, {oj} nicht übersetzt; {call} scheitert bei SQL Server |
| OData Version 4.01 Part 1: Protocol | OASIS-Standard | Anfragen, Antworten, Fehlerform, @odata.nextLink, @odata.etag/If-Match, Anlegen/Ändern/Löschen; Versionsverhandlung über OData-Version | sendet OData-Version: 4.0 und OData-MaxVersion: 4.0; folgt nextLink; PATCH/DELETE mit If-Match, 412 als Schreibkonflikt | $expand, $search, $batch, Delta, asynchrone Anfragen nicht genutzt |
| Part 2: URL Conventions | OASIS-Standard | Abfrageoptionen, Literale, Adressierung über den Schlüssel | $select, $filter, $orderby, $top, $skip, $count; Literale ohne Typnamen; POST …/$query (erst seit 4.01) nur, wenn eine Adresse zu lang wäre | Funktionen in $filter außer contains, startswith, endswith |
| CSDL XML 4.01 | OASIS-Standard | Aufbau von $metadata: Mengen, Typen, Facetten, Schlüssel, Annotationen | Katalogfunktionen und Typabbildung aus $metadata | CSDL in JSON nicht gelesen |
| OData JSON Format 4.01 | OASIS-Standard | Darstellung von Werten und Fehlern in JSON | liest und schreibt nur JSON | Atom/XML nicht |
| OData Extension for Data Aggregation 4.0 | OASIS Committee Specification, kein OASIS-Standard | $apply mit filter, compute, groupby, aggregate; Ankündigung über ApplySupported | nutzt $apply nur bei Ankündigung | COUNT(Spalte) nur über die eigene Methode Wkl.Store.V1.count |
| RFC 9110 HTTP Semantics | RFC, Internet-Standard | bedingte Anfragen (If-Match, 412), 401 mit WWW-Authenticate, Umleitungen (3xx) | Schreibkonflikt über If-Match; Herausforderungen beantwortet; Umleitungen folgt der Treiber selbst, nur beim Lesen und nur am selben Ursprung | eine Umleitung an einen anderen Ursprung wird nicht gefolgt, auch wenn der Dienst sie so meint (gewollt) |
| RFC 7617 Basic | RFC auf dem Standardweg | Name und Kennwort, durch Doppelpunkt getrennt, Zeichensatz UTF-8 empfohlen | UTF-8; Name mit Doppelpunkt abgewiesen (28000) | – |
| RFC 4559 Negotiate | informatives RFC | Kerberos oder NTLM über HTTP | Windows-Anmeldung des Prozesses mit Kerberos oder NTLM, nur auf Herausforderung | – |
| RFC 6238 TOTP | informatives RFC | zeitbasierte Einmalcodes | reicht den Code nur weiter; prüfen tut der Dienst | – |
| Idempotency-Key HTTP Header Field | Entwurf der IETF, kein Standard | ein Schlüssel macht die Wiederholung einer Änderung unschädlich, wenn der Dienst ihn einhält | sendet ihn an jede Änderung | ein fremder Dienst muss ihn nicht kennen (siehe Zusagen je Art des Dienstes) |
| TLS über die Windows-Schnittstelle Schannel | Betriebssystem | Protokollversionen, Verfahren und Zertifikatsprüfung | überlässt Version und Verfahren Windows; prüft das Zertifikat gegen die Zertifikatsspeicher | Sperrlisten und OCSP nicht abgefragt; kein Pinning |
| CREDENTIALW (Anmeldeinformationsverwaltung) | Herstellerspezifikation | allgemeine Anmeldeinformation je Benutzer, Beständigkeit | speichert je Dienststamm und Name, Beständigkeit „lokaler Computer“ | Schutz nur gegen andere Windows-Konten, nicht gegen Programme desselben Kontos |
Siehe auch
- Anforderungen an einen OData-Dienst – was ein Dienst bieten muss
de/wiki/data-conectivity/odata-odbc/reference/standards.txt · Zuletzt geändert: von Wolfgang van der Stille