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.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
OLE DB-stuurprogramma downloaden
Purpose
Vanaf versie 18.2.1 kunnen OLE DB-stuurprogramma's van Microsoft OLE DB voor SQL Server verbinding maken met Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics en Microsoft Fabric met behulp van een federatieve identiteit.
Microsoft Entra-verificatiemethoden zijn onder andere:
- Gebruikersnaam en wachtwoord
- Toegangstoken
- Geïntegreerde verificatie
Versie 18.3.0 voegt ondersteuning toe voor de volgende Microsoft Entra-verificatiemethoden:
Interactieve verificatie
Verificatie van beheerde identiteit (alleen vanuit een virtuele Azure-machine die is geconfigureerd met beheerde identiteit)
Versie 18.5.0 voegt ondersteuning toe voor de volgende verificatiemethode:
- Verificatie van Microsoft Entra service principal
Opmerking
Het gebruik van de volgende verificatiemodi waarvoor DataTypeCompatibility (of de bijbehorende eigenschap) is ingesteld op 80 wordt niet ondersteund.
- Microsoft Entra-verificatie met behulp van gebruikersnaam en wachtwoord
- Microsoft Entra-verificatie met behulp van toegangstoken
- Geïntegreerde Microsoft Entra-verificatie
- Interactieve Verificatie van Microsoft Entra
- Verificatie van door Microsoft Entra beheerde identiteiten
- Verificatie van Microsoft Entra service principal
Als u Microsoft Entra-verificatie wilt gebruiken, moet u uw Azure SQL-gegevensbron configureren. Zie Microsoft Entra-verificatie configureren en beheren met Azure SQLvoor meer informatie.
Trefwoorden en eigenschappen van connectiestring.
De volgende trefwoorden voor verbindingsreeksen zijn geïntroduceerd ter ondersteuning van Microsoft Entra-verificatie:
| Verbindingsreeks trefwoord | Eigenschap van de verbinding | Description |
|---|---|---|
| Toegangstoken | SSPROP_AUTH_ACCESS_TOKEN |
Hiermee geeft u een toegangstoken op voor verificatie bij Microsoft Entra ID. |
| Authenticatie | SSPROP_AUTH_MODE |
Hiermee geeft u de verificatiemethode op die moet worden gebruikt. |
Zie de volgende pagina's voor meer informatie over de nieuwe trefwoorden/eigenschappen:
- Trefwoorden voor verbindingsreeks gebruiken met OLE DB-stuurprogramma voor SQL Server
- Initialisatie- en autorisatie-eigenschappen
Versleuteling en certificaatvalidatie
Zie Versleuteling en certificaatvalidatie voor meer informatie.
GUI-toevoegingen
De grafische gebruikersinterface van het stuurprogramma is verbeterd om Microsoft Entra-verificatie toe te staan. Voor meer informatie, zie:
Voorbeeld van verbindingsreeksen
In deze sectie ziet u voorbeelden van nieuwe en bestaande trefwoorden voor verbindingsreeksen die moeten worden gebruikt met IDataInitialize::GetDataSource en DBPROP_INIT_PROVIDERSTRING eigenschap.
SQL-verificatie
- Met behulp van
IDataInitialize::GetDataSource:- Nieuw:
Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Verificatie=SqlPassword; Gebruikers-id=[gebruikersnaam]; Password=[password]; Versleuteling gebruiken voor gegevens=verplicht
- Verouderd:
Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Gebruikers-id=[gebruikersnaam]; Password=[password]; Versleuteling gebruiken voor gegevens=verplicht
- Nieuw:
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:- Nieuw:
Server=[server]; Database=[database]; Verificatie=SqlPassword; UID=[gebruikersnaam]; PWD=[wachtwoord]; Versleutelen=Verplicht
- Verouderd:
Server=[server]; Database=[database]; UID=[gebruikersnaam]; PWD=[wachtwoord]; Versleutelen=Verplicht
- Nieuw:
Geïntegreerde Windows-verificatie met behulp van SSPI (Security Support Provider Interface)
- Met behulp van
IDataInitialize::GetDataSource:- Nieuw:
Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Verificatie=ActiveDirectoryIntegrated; Versleuteling gebruiken voor gegevens=verplicht
- Verouderd:
Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Geïntegreerde beveiliging=SSPI; Versleuteling gebruiken voor gegevens=verplicht
- Nieuw:
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:- Nieuw:
Server=[server]; Database=[database]; Verificatie=ActiveDirectoryIntegrated; Versleutelen=Verplicht
- Verouderd:
Server=[server]; Database=[database]; Trusted_Connection=ja; Versleutelen=Verplicht
- Nieuw:
Gebruikersnaam en wachtwoordverificatie van Microsoft Entra
Opmerking
De optie ActiveDirectoryPassword-verificatie (Wachtwoordverificatie voor Microsoft Entra-id) is afgeschaft.
Het Wachtwoord voor Microsoft Entra-id is gebaseerd op de OAuth 2.0 ROPC-toekenning (Resource Owner Password Credentials), waarmee een toepassing de gebruiker kan aanmelden door het wachtwoord rechtstreeks te verwerken.
Microsoft raadt u aan de ROPC-stroom niet te gebruiken; dit is niet compatibel met meervoudige verificatie (MFA). In de meeste scenario's zijn veiligere alternatieven beschikbaar en aanbevolen. Deze stroom vereist een hoge mate van vertrouwen in de toepassing en brengt risico's met zich mee die niet aanwezig zijn in andere stromen. U moet deze stroom alleen gebruiken wanneer veiligere stromen niet haalbaar zijn. Microsoft gaat weg van deze verificatiestroom met een hoog risico om gebruikers te beschermen tegen schadelijke aanvallen. Zie Planning voor verplichte meervoudige verificatie voor Azure voor meer informatie.
Wanneer gebruikerscontext beschikbaar is, gebruikt u ActiveDirectoryInteractive-verificatie.
Wanneer de gebruikerscontext niet beschikbaar is en uw app wordt uitgevoerd in de Azure-infrastructuur, gebruikt u ActiveDirectoryMSI (of ActiveDirectoryManagedIdentity in sommige stuurprogramma's). Beheerde identiteit elimineert de overhead van het onderhouden en roteren van geheimen en certificaten. Als u beheerde identiteit niet kunt gebruiken, gebruikt u ActiveDirectoryServicePrincipal-verificatie.
Waarschuwing
Gebruik geen service-principalverificatie wanneer er een gebruikerscontext beschikbaar is. Alleen-app-toegang heeft inherente hoge bevoegdheid, wat vaak leidt tot tenantbrede toegang en mogelijkerwijs een kwaadwillende de toegang verschaft tot klantgegevens van elke gebruiker.
- Met behulp van
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryPassword; Gebruikers-id=[gebruikersnaam]; Password=[password]; Versleuteling gebruiken voor gegevens=verplicht
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:Server=[server]; Database=[database]; Authentication=ActiveDirectoryPassword; UID=[gebruikersnaam]; PWD=[wachtwoord]; Versleutelen=Verplicht
Geïntegreerde Microsoft Entra-verificatie
- Met behulp van
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Verificatie=ActiveDirectoryIntegrated; Versleuteling gebruiken voor gegevens=verplicht
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:Server=[server]; Database=[database]; Verificatie=ActiveDirectoryIntegrated; Versleutelen=Verplicht
Microsoft Entra-verificatie met behulp van een toegangstoken
- Met behulp van
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Toegangstoken=[toegangstoken]; Versleuteling gebruiken voor gegevens=verplicht
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:Het verlenen van toegangstoken via
DBPROP_INIT_PROVIDERSTRINGwordt niet ondersteund
Interactieve Verificatie van Microsoft Entra
- Met behulp van
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Verificatie=ActiveDirectoryInteractive; Gebruikers-id=[gebruikersnaam]; Versleuteling gebruiken voor gegevens=verplicht
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:Server=[server]; Database=[database]; Verificatie=ActiveDirectoryInteractive; UID=[gebruikersnaam]; Versleutelen=Verplicht
Door Microsoft Entra beheerde identiteitsverificatie
- Met behulp van
IDataInitialize::GetDataSource:- Door de gebruiker toegewezen beheerde identiteit:
Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Verificatie=ActiveDirectoryMSI; Gebruikers-id=[Object-id]; Versleuteling gebruiken voor gegevens=verplicht
- Door het systeem toegewezen beheerde identiteit:
Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Verificatie=ActiveDirectoryMSI; Versleuteling gebruiken voor gegevens=verplicht
- Door de gebruiker toegewezen beheerde identiteit:
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:- Door de gebruiker toegewezen beheerde identiteit:
Server=[server]; Database=[database]; Verificatie=ActiveDirectoryMSI; UID=[Object-id]; Versleutelen=Verplicht
- Door het systeem toegewezen beheerde identiteit:
Server=[server]; Database=[database]; Verificatie=ActiveDirectoryMSI; Versleutelen=Verplicht
- Door de gebruiker toegewezen beheerde identiteit:
Verificatie van Microsoft Entra service principal
- Met behulp van
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Gegevensbron=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryServicePrincipal; Gebruikers-id=[Toepassings-id (client)]; Password=[Toepassingsgeheim (client)]; Versleuteling gebruiken voor gegevens=verplicht
- Met behulp van
DBPROP_INIT_PROVIDERSTRING:Server=[server];Database=[database];Authentication=ActiveDirectoryServicePrincipal;UID=[Client-id];PWD=[Client-geheim];Versleutelen=Verplicht
Codevoorbeelden
In de volgende voorbeelden ziet u de code die is vereist om verbinding te maken met Microsoft Entra-id met verbindingstrefwoorden.
Toegangstoken
#include <string>
#include <iostream>
#include <msdasc.h>
int main()
{
wchar_t azureServer[] = L"server";
wchar_t azureDatabase[] = L"mydatabase";
wchar_t accessToken[] = L"eyJ0eXAiOi...";
IDBInitialize *pIDBInitialize = nullptr;
IDataInitialize* pIDataInitialize = nullptr;
HRESULT hr = S_OK;
CoInitialize(nullptr);
// Construct the connection string.
std::wstring connString = L"Provider=MSOLEDBSQL19;Data Source=" + std::wstring(azureServer) + L";Initial Catalog=" +
std::wstring(azureDatabase) + L";Access Token=" + accessToken + L";Use Encryption for Data=Mandatory;";
hr = CoCreateInstance(CLSID_MSDAINITIALIZE, nullptr, CLSCTX_INPROC_SERVER,
IID_IDataInitialize, reinterpret_cast<LPVOID*>(&pIDataInitialize));
if (FAILED(hr))
{
std::cout << "Failed to create an IDataInitialize instance." << std::endl;
goto Cleanup;
}
hr = pIDataInitialize->GetDataSource(nullptr, CLSCTX_INPROC_SERVER, connString.c_str(),
IID_IDBInitialize, reinterpret_cast<IUnknown**>(&pIDBInitialize));
if (FAILED(hr))
{
std::cout << "Failed to get data source object." << std::endl;
goto Cleanup;
}
hr = pIDBInitialize->Initialize();
if (FAILED(hr))
{
std::cout << "Failed to establish connection." << std::endl;
goto Cleanup;
}
Cleanup:
if (pIDBInitialize)
{
pIDBInitialize->Uninitialize();
pIDBInitialize->Release();
}
if (pIDataInitialize)
{
pIDataInitialize->Release();
}
CoUninitialize();
}
Active Directory Geïntegreerd
#include <string>
#include <iostream>
#include <msdasc.h>
int main()
{
wchar_t azureServer[] = L"server";
wchar_t azureDatabase[] = L"mydatabase";
IDBInitialize *pIDBInitialize = nullptr;
IDataInitialize* pIDataInitialize = nullptr;
HRESULT hr = S_OK;
CoInitialize(nullptr);
// Construct the connection string.
std::wstring connString = L"Provider=MSOLEDBSQL19;Data Source=" + std::wstring(azureServer) + L";Initial Catalog=" +
std::wstring(azureDatabase) + L";Authentication=ActiveDirectoryIntegrated;Use Encryption for Data=Mandatory;";
hr = CoCreateInstance(CLSID_MSDAINITIALIZE, nullptr, CLSCTX_INPROC_SERVER,
IID_IDataInitialize, reinterpret_cast<LPVOID*>(&pIDataInitialize));
if (FAILED(hr))
{
std::cout << "Failed to create an IDataInitialize instance." << std::endl;
goto Cleanup;
}
hr = pIDataInitialize->GetDataSource(nullptr, CLSCTX_INPROC_SERVER, connString.c_str(),
IID_IDBInitialize, reinterpret_cast<IUnknown**>(&pIDBInitialize));
if (FAILED(hr))
{
std::cout << "Failed to get data source object." << std::endl;
goto Cleanup;
}
hr = pIDBInitialize->Initialize();
if (FAILED(hr))
{
std::cout << "Failed to establish connection." << std::endl;
goto Cleanup;
}
Cleanup:
if (pIDBInitialize)
{
pIDBInitialize->Uninitialize();
pIDBInitialize->Release();
}
if (pIDataInitialize)
{
pIDataInitialize->Release();
}
CoUninitialize();
}
Verwante inhoud
Autoriseer toegang tot Microsoft Entra-webtoepassingen met de OAuth 2.0-code toestemmingsstroom.
Meer informatie over Microsoft Entra-verificatie voor SQL Server.
Configureer stuurprogrammaverbindingen met behulp van trefwoorden voor verbindingsreeksen die het OLE DB-stuurprogramma ondersteunt.