Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Zweck
Ab Version 18.2.1 ermöglicht der Microsoft OLE DB-Treiber für SQL Server, dass OLE DB-Anwendungen über einen Identitätsverbund eine Verbindung mit einer Azure SQL-Datenbank, Azure SQL Managed Instance, Azure Synapse Analytics und Microsoft Fabric herstellen.
Microsoft Entra Authentifizierungsmethoden beinhalten:
- Benutzername und Kennwort
- Zugriffstoken
- Integrierte Authentifizierung
Mit Version 18.3.0 kommt Unterstützung für die folgenden Microsoft Entra-Authentifizierungsmethoden hinzu:
Interaktive Authentifizierung
Authentifizierung mittels verwalteter Identitäten (nur von einer Azure Virtual Machine, die mit verwalteter Identität konfiguriert ist)
Mit Version 18.5.0 wird Unterstützung für die folgenden Authentifizierungsmethoden hinzugefügt:
- Microsoft Entra-Authentifizierung mit Dienstprinzipal
Hinweis
Die Verwendung der folgenden Authentifizierungsmodi, wenn DataTypeCompatibility (oder eine entsprechende Eigenschaft) auf 80 festgelegt ist, wird nicht unterstützt:
- Microsoft Entra-Authentifizierung mit Benutzername und Kennwort
- Microsoft Entra-Authentifizierung mit Zugriffstoken
- Integrierte Microsoft Entra-Authentifizierung
- Interaktive Microsoft Entra-Authentifizierung
- Microsoft Entra-Authentifizierung mit verwalteten Identitäten
- Microsoft Entra-Authentifizierung mit Dienstprinzipal
Um die Microsoft Entra-Authentifizierung verwenden zu können, müssen Sie Ihre Azure SQL-Datenquelle konfigurieren. Weitere Informationen finden Sie unter Konfigurieren und Verwalten der Microsoft Entra-Authentifizierung mit Azure SQL.
Schlüsselwörter und Eigenschaften bei Verbindungszeichenfolgen
Zur Unterstützung der Microsoft Entra-Authentifizierung wurden die folgenden Schlüsselwörter für Verbindungszeichenfolgen eingeführt:
| Verbindungszeichenfolgen-Schlüsselwort | Verbindungseigenschaft | BESCHREIBUNG |
|---|---|---|
| Zugriffstoken | SSPROP_AUTH_ACCESS_TOKEN |
Gibt ein Zugriffstoken für die Authentifizierung bei Microsoft Entra ID an. |
| Authentifizierung | SSPROP_AUTH_MODE |
Gibt die zu verwendende Authentifizierungsmethode an. |
Weitere Informationen zu den neuen Schlüsselwörtern/Eigenschaften finden Sie auf den folgenden Seiten:
- Verwenden von Verbindungszeichenfolgen-Schlüsselwörtern mit dem OLE DB-Treiber für SQL Server
- Initialisierungs- und Autorisierungseigenschaften
Verschlüsselung und Zertifikatüberprüfung
Weitere Informationen finden Sie unter Verschlüsselung und Zertifikatüberprüfung.
GUI-Ergänzungen
Die grafische Benutzeroberfläche des Treibers wurde erweitert, um die Microsoft Entra-Authentifizierung zu ermöglichen. Weitere Informationen finden Sie unter:
Exemplarische Verbindungszeichenfolgen
Dieser Abschnitt enthält Beispiele für neue und vorhandene Schlüsselwörter in Verbindungszeichenfolgen, die mit den Eigenschaften IDataInitialize::GetDataSource und DBPROP_INIT_PROVIDERSTRING verwendet werden können.
SQL-Authentifizierung
- Syntax:
IDataInitialize::GetDataSource- Neu:
Provider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=SqlPassword; Benutzer-ID=[Benutzername]; Password=[password]; Verschlüsselung für Data=Obligatorisch verwenden
- Veraltet:
Provider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Benutzer-ID=[Benutzername]; Password=[password]; Verschlüsselung für Data=Obligatorisch verwenden
- Neu:
- Syntax:
DBPROP_INIT_PROVIDERSTRING- Neu:
Server=[server];Database=[database];Authentication=SqlPassword;UID=[username];PWD=[password];Encrypt=Mandatory
- Veraltet:
Server=[server];Database=[database];UID=[username];PWD=[password];Encrypt=Mandatory
- Neu:
Integrierte Windows-Authentifizierung unter Verwendung der Security Support Provider-Schnittstelle (SSPI)
- Syntax:
IDataInitialize::GetDataSource- Neu:
Provider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=ActiveDirectoryIntegrated; Verschlüsselung für Data=Obligatorisch verwenden
- Veraltet:
Provider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Integrierte Sicherheit=SSPI; Verschlüsselung für Data=Obligatorisch verwenden
- Neu:
- Syntax:
DBPROP_INIT_PROVIDERSTRING- Neu:
Server=[server];Database=[database];Authentication=ActiveDirectoryIntegrated;Encrypt=Mandatory
- Veraltet:
Server=[server];Database=[database];Trusted_Connection=yes;Encrypt=Mandatory
- Neu:
Microsoft Entra-Authentifizierung mit Benutzername und Kennwort
- Syntax:
IDataInitialize::GetDataSourceProvider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=ActiveDirectoryPassword; Benutzer-ID=[Benutzername]; Password=[password]; Verschlüsselung für Data=Obligatorisch verwenden
- Syntax:
DBPROP_INIT_PROVIDERSTRINGServer=[server];Database=[database];Authentication=ActiveDirectoryPassword;UID=[username];PWD=[password];Encrypt=Mandatory
Integrierte Microsoft Entra-Authentifizierung
- Syntax:
IDataInitialize::GetDataSourceProvider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=ActiveDirectoryIntegrated; Verschlüsselung für Data=Obligatorisch verwenden
- Syntax:
DBPROP_INIT_PROVIDERSTRINGServer=[server];Database=[database];Authentication=ActiveDirectoryIntegrated;Encrypt=Mandatory
Microsoft Entra-Authentifizierung mit Zugriffstoken
- Syntax:
IDataInitialize::GetDataSourceProvider=MSOLEDBSQL19;Data Source=[server];Initial Catalog=[database];Access Token=[access token] ;Use Encryption for Data=Mandatory
- Syntax:
DBPROP_INIT_PROVIDERSTRINGDie Bereitstellung von Zugriffstoken über
DBPROP_INIT_PROVIDERSTRINGwird nicht unterstützt.
Interaktive Microsoft Entra-Authentifizierung
- Syntax:
IDataInitialize::GetDataSourceProvider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=ActiveDirectoryInteractive; Benutzer-ID=[Benutzername]; Verschlüsselung für Data=Obligatorisch verwenden
- Syntax:
DBPROP_INIT_PROVIDERSTRINGServer=[server];Database=[database];Authentication=ActiveDirectoryInteractive;UID=[username];Encrypt=Mandatory
Microsoft Entra-Authentifizierung mit verwalteter Identität
- Syntax:
IDataInitialize::GetDataSource- Benutzerseitig zugewiesene verwaltete Identität:
Provider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=ActiveDirectoryMSI; Benutzer-ID=[Objekt-ID]; Verschlüsselung für Data=Obligatorisch verwenden
- Systemseitig zugewiesene verwaltete Identität:
Provider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=ActiveDirectoryMSI; Verschlüsselung für Data=Obligatorisch verwenden
- Benutzerseitig zugewiesene verwaltete Identität:
- Syntax:
DBPROP_INIT_PROVIDERSTRING- Benutzerseitig zugewiesene verwaltete Identität:
Server=[Server]; Database=[database]; Authentication=ActiveDirectoryMSI; UID=[Objekt-ID]; Encrypt=Obligatorisch
- Systemseitig zugewiesene verwaltete Identität:
Server=[server];Database=[database];Authentication=ActiveDirectoryMSI;Encrypt=Mandatory
- Benutzerseitig zugewiesene verwaltete Identität:
Microsoft Entra-Authentifizierung mit Dienstprinzipal
- Syntax:
IDataInitialize::GetDataSourceProvider=MSOLEDBSQL19; Datenquelle=[Server]; Initial Catalog=[database]; Authentication=ActiveDirectoryServicePrincipal; Benutzer-ID=[Anwendungs-ID (Client)]; Password=[Application (Client) secret]; Verschlüsselung für Data=Obligatorisch verwenden
- Syntax:
DBPROP_INIT_PROVIDERSTRINGServer=[Server]; Database=[Datenbank]; Authentication=ActiveDirectoryServicePrincipal; UID=[Anwendungs-ID (Client)]; PWD=[Anwendungsgeheimnis (Client)]; Encrypt=Erforderlich
Codebeispiele
Die folgenden Beispiele zeigen den erforderlichen Code, um über Verbindungsschlüsselwörter eine Verbindung mit Microsoft Entra ID herzustellen.
Zugriffstoken
#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 Integriert
#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();
}
Zugehöriger Inhalt
Zugang zu Microsoft Entra-Webanwendungen mit dem OAuth 2.0 Code Grant Flow autorisieren.
Weitere Informationen zur Microsoft Entra-Authentifizierung für SQL Server.
Konfigurieren Sie Treiberverbindungen mithilfe von Verbindungszeichenfolgen-Schlüsselwörtern, die der OLE DB-Treiber unterstützt.