Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden belangrijke wijzigingen beschreven tussen Microsoft OLE DB Driver 19 voor SQL Server en eerdere versies.
Aanbeveling
MSOLEDBSQL19 (Microsoft OLE DB Driver 19 for SQL Server) is het huidige aanbevolen OLE DB-stuurprogramma. Het ondersteunt TDS 8.0 en moderne beveiligingsfuncties. Versie 19.2.0+ ondersteunt ook TLS 1.3. Gebruik Provider=MSOLEDBSQL19 deze in uw verbindingsreeksen.
Overzicht van wijzigingen
| Area | Versie 18 en eerder | Versie 19+ |
|---|---|---|
Standaardinstelling voor versleuteling (Encrypt) |
no (geen versleuteling of de server kan versleuteling vereisen) |
Mandatory (versleuteling vereist) |
Encrypt eigenschapstype |
VT_BOOL |
VT_BSTR |
Encrypt geldige waarden |
no/yes |
no/yes/true/false/Optional/Mandatory/Strict |
| Certificaatvalidatie | Overgeslagen wanneer clientsets Encrypt=no |
Altijd geëvalueerd wanneer versleuteling plaatsvindt |
| Stuurprogrammanaam | MSOLEDBSQL |
MSOLEDBSQL19 |
| CLSID |
MSOLEDBSQL_CLSID (verouderd) |
MSOLEDBSQL_CLSID (bijgewerkt in koptekst) |
Waarschuwing
ActiveDirectoryPassword-verificatie is afgeschaft. Als u migreert van versie 18 naar 19 en u Authentication=ActiveDirectoryPasswordwilt migreren naar een veiligere verificatiemethode. Zie Afgeschafte verificatiemethoden voor alternatieven.
Wijzigingen in de versleutelingseigenschap
Wijziging van eigenschapstype versleutelen
De eigenschap SSPROP_INIT_ENCRYPT van het stuurprogramma verandert van VT_BOOL in VT_BSTR.
| verbindingsstring | Versie 18-waarden | Versie 19-waarden |
|---|---|---|
Aanbieder: Encrypt |
no/yes |
no/yes/true/false/Optional/Mandatory/Strict |
IDataInitialize: Use Encryption for Data |
true/false |
no/yes/true/false/Optional/Mandatory/Strict |
Waardetoewijzing:
| Wijze | Equivalente waarden | Gedrag |
|---|---|---|
Optional |
no, false |
Niet-versleuteld, tenzij de server dit vereist |
Mandatory (standaard) |
yes, true |
Versleutelde verbinding vereist |
Strict |
(geen equivalent) | TDS 8.0-versleuteling; vereist SQL Server 2022+ |
Aanbeveling
Vanaf versie 19.2.0 kunnen TDS 8.0-verbindingen TLS 1.3 gebruiken bij het maken van verbinding met SQL Server 2022 of hoger. De ServerCertificate eigenschap is ook toegevoegd in deze versie. Zie TLS 1.3-ondersteuning voor meer informatie.
Voor compatibiliteit met eerdere versies accepteert versie 19 alle waarden van versie 18 (yes/no) naast de nieuwe waarden ().Optional/Mandatory/Strict
Standaardgedrag voor versleuteling
| Versie | Verstek | Resultaat |
|---|---|---|
| 18 en eerder | no |
Verbindingen zijn standaard niet versleuteld |
| 19+ | Mandatory |
Verbindingen die standaard zijn versleuteld |
Als u het gedrag van versie 18 wilt herstellen, voegt u een van deze opties toe aan uw verbindingsreeks:
- Aanbieder:
Encrypt=Optional; - IDataInitialize:
Use Encryption for Data=Optional;
Certificaatvalidatiegedrag
| Scenario | Versie 18 | Versie 19+ |
|---|---|---|
Clientsets Encrypt=no, server dwingt geen versleuteling af |
Geen validatie | Geen validatie |
Clientsets Encrypt=no, server dwingt versleuteling af |
Trust Server Certificate
Genegeerd |
Trust Server Certificate
Geëvalueerd |
Clientsets Encrypt=yes |
Trust Server Certificate Geëvalueerd |
Trust Server Certificate Geëvalueerd |
Compatibiliteitsnotities
Versie 19-clients die gebruikmaken van standaardinstellingen, kunnen geen verbinding maken wanneer de server versleuteling dwingt en een niet-vertrouwd certificaat gebruikt. Werk uw Trust Server Certificate instelling bij of gebruik een vertrouwd certificaat.
TrustServerCertificate
is niet verwijderd in versie 19. De optie werkt nog steeds. Versie 18 negeerde deze instelling wanneer Encrypt deze is ingesteld op no, zelfs wanneer de server geforceerde versleuteling afdwong. Versie 19 evalueert TrustServerCertificate nu in alle versleutelde scenario's.
Het stuurprogramma versie 19, vóór 19.4.1, had een installatieprobleem waarmee de TrustServerCertificate registeroptie no kon worden ingesteld op systemen waarop v18 eerder was geïnstalleerd. Wanneer dit probleem zich voordeed, zou het stuurprogramma de veiligere registerinstelling gebruiken, waardoor verbindingsreeksopties mogelijk geen effect hebben. Dit probleem is opgelost in versie 19.4.1. Bij een nieuwe installatie van v19 (zonder v18 aanwezig) is de registeroptie altijd correct ingesteld op yes. Zie Registerinstellingenvoor meer informatie.
De indeling van trefwoorden verschilt per interface:
- Verbindingsreeksen van provider gebruiken geen spaties:
TrustServerCertificate=yes; - IDataInitialize-verbindingsreeksen maken gebruik van spaties:
Trust Server Certificate=yes;
Zie Versleuteling en certificaatvalidatie in OLE DB voor meer informatie.
Registerinstellingen voor Force Protocol Encryption
De registerinstelling Force Protocol Encryption maakt gebruik van numerieke waarden die zijn toegewezen aan versleutelingsmodi:
| Registerwaarde | Versleutelingsmodus | Description |
|---|---|---|
0 |
Optional |
Versleuteling alleen als de server dit vereist |
1 |
Mandatory |
Versleuteling vereist |
2 |
Strict |
TDS 8.0-versleuteling |
Het stuurprogramma maakt gebruik van de veiligste optie tussen de registerinstelling en de verbindingseigenschap. Zie Registerinstellingen voor registersleutellocaties.
Wijzigingen in de naam van de coureur
Versie 19 biedt ondersteuning voor side-by-side-installatie met versie 18. De naam van het stuurprogramma bevat het primaire versienummer voor differentiatie.
| gebruikersinterface | Versie 18 | Versie 19 |
|---|---|---|
| Trefwoord provider | MSOLEDBSQL |
MSOLEDBSQL19 |
| CLSID-constante | MSOLEDBSQL_CLSID |
MSOLEDBSQL_CLSID (bijgewerkt in msoledbsql.h) |
| Weergavenaam van de gebruikersinterface | Microsoft OLE DB-stuurprogramma voor SQL Server | Microsoft OLE DB-stuurprogramma 19 voor SQL Server |
Migratiestappen
- Neem de bijgewerkte
msoledbsql.hkoptekst op in uw project. - Voor
IDBInitialize: Geen wijzigingen nodig (CLSID bijgewerkt in header). - Voor
IDataInitialize: WijzigenProvider=MSOLEDBSQLinProvider=MSOLEDBSQL19. - Voor UI-hulpprogramma's (SSMS, eigenschappen van gegevenskoppeling): Selecteer Microsoft OLE DB-stuurprogramma 19 voor SQL Server.
Voorbeelden van verbindingsreeksen
Versie 18 (vóór):
Provider=MSOLEDBSQL;Server=myserver;Database=mydb;Trusted_Connection=yes;
Versie 19 (na):
Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Trusted_Connection=yes;
Versie 19 met expliciete versleutelingsinstellingen:
Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Encrypt=Mandatory;TrustServerCertificate=no;
Versie 19 met strikte versleuteling (TDS 8.0):
Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Encrypt=Strict;ServerCertificate=C:\certs\server.cer;
Nieuwe eigenschappen van versie 19
Versie 19 introduceert eigenschappen voor verbeterde certificaatvalidatie met Strict de versleutelingsmodus.
HostNameInCertificate (v19.0.0+)
Hiermee geeft u de hostnaam op die moet worden gevalideerd op basis van het TLS/SSL-certificaat van de server. Gebruik deze eigenschap wanneer de servernaam in de verbindingsreeks verschilt van de algemene naam van het certificaat (CN) of alternatieve onderwerpnaam (SAN).
| gebruikersinterface | Vastgoed |
|---|---|
| Trefwoord provider | HostNameInCertificate |
| Trefwoord IDataInitialize | Host Name In Certificate |
| OLE DB-eigenschap | SSPROP_INIT_HOST_NAME_CERTIFICATE |
Opmerking
Deze eigenschap wordt genegeerd wanneer Trust Server Certificate deze is ingeschakeld. Wanneer Encrypt=Strict, wordt het certificaat altijd gevalideerd.
ServerCertificate (v19.2.0+)
Hiermee geeft u het pad naar een certificaatbestand (PEM, DER of CER-indeling) op voor exacte certificaatkoppeling. Het stuurprogramma vergelijkt dit certificaat met het certificaat van de server tijdens de TLS-handshake.
| gebruikersinterface | Vastgoed |
|---|---|
| Trefwoord provider | ServerCertificate |
| Trefwoord IDataInitialize | Server Certificate |
| OLE DB-eigenschap | SSPROP_INIT_SERVER_CERTIFICATE |
Belangrijk
ServerCertificate kan alleen worden gebruikt wanneer Encrypt=Strict. Een poging om deze te gebruiken met Mandatory of Optional versleuteling resulteert in een verbindingsfout.
Afgeschafte verificatiemethoden
ActiveDirectoryPassword
De ActiveDirectoryPassword verificatiemethode (Wachtwoordverificatie voor Microsoft Entra-id) is afgeschaft. Deze verificatie is gebaseerd op de OAuth 2.0 ROPC-toekenning (Resource Owner Password Credentials), die niet compatibel is met meervoudige verificatie (MFA) en beveiligingsrisico's vormt.
Waarschuwing
Microsoft gaat weg van deze verificatiestroom met een hoog risico om gebruikers te beschermen tegen schadelijke aanvallen. Plan om te migreren naar een veiligere verificatiemethode voordat deze optie wordt verwijderd. Zie Planning voor verplichte meervoudige verificatie voor Azure voor meer informatie.
Aanbevolen alternatieven
| Scenario | Aanbevolen verificatie | Verbindingsreeks trefwoord |
|---|---|---|
| Interactieve gebruikerscontext | Meervoudige verificatie | Authentication=ActiveDirectoryInteractive |
| App die wordt uitgevoerd in Azure | Beheerde identiteit | Authentication=ActiveDirectoryMSI |
| Service/daemon zonder gebruiker | Service principal | Authentication=ActiveDirectoryServicePrincipal |
Zie Microsoft Entra-id gebruiken voor meer informatie.
Probleemoplossingsproces
Verbinding mislukt met certificaatvalidatiefout
Symptoom: Verbinding mislukt met een certificaatvalidatiefout of niet-vertrouwd certificaatbericht.
Oorzaak: versie 19 is standaard ingesteld Encrypt=Mandatoryop, waarvoor een geldig servercertificaat is vereist. Versie 18 is standaard ingesteld op Encrypt=no (niet-versleuteld).
Oplossingen:
- Aanbevolen: Installeer een vertrouwd certificaat op de server.
-
Alleen ontwikkeling: toevoegen
TrustServerCertificate=yes;aan uw verbindingsreeks (niet aanbevolen voor productie). -
Terugval: Toevoegen
Encrypt=Optional;om het gedrag van versie 18 te herstellen (vermindert de beveiliging).
De verbinding mislukt met 'Servercertificaat kan alleen worden gebruikt met strikte versleuteling'
Symptoom: Verbinding mislukt wanneer u de ServerCertificate eigenschap gebruikt.
Oorzaak: De ServerCertificate eigenschap vereist Encrypt=Strict.
Oplossing: verwijder de ServerCertificate verbindingsreeks of ga naar Encrypt=Strict;.
Toepassing ontvangt VT_BOOL fout bij het instellen van de eigenschap Encrypt
Symptoom: Het instellen SSPROP_INIT_ENCRYPT met een Booleaanse waarde mislukt.
Oorzaak: Versie 19 heeft het eigenschapstype gewijzigd van VT_BOOL in VT_BSTR.
Oplossing: Gebruik tekenreekswaarden ("Mandatory", "Optional", "Strict", "yes", ) "no"in plaats van booleaanse waarden.
Provider niet gevonden na de upgrade
Symptoom: De toepassing mislukt met 'Provider niet gevonden' of een vergelijkbare fout.
Oorzaak: versie 19 gebruikt een andere providernaam (MSOLEDBSQL19).
Oplossingen:
- Werk de verbindingsreeks bij van
Provider=MSOLEDBSQLnaarProvider=MSOLEDBSQL19. - Neem de bijgewerkte
msoledbsql.hheader op als u deze gebruiktIDBInitializemet de CLSID.
Verwante inhoud
- Microsoft OLE DB-stuurprogramma voor SQL Server-
- Verbindingsstring-sleutelwoorden gebruiken met OLE DB Driver voor SQL Server
- Versleuteling en certificaatvalidatie in OLE DB
- UDL-configuratie (Universal Data Link)
- Dialoogvenster SQL Server-aanmelding (OLE DB)
- Initialisatie- en autorisatie-eigenschappen
- Registerinstellingen