Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Účel
Od verze 18.2.1 umožňuje ovladač Microsoft OLE DB pro SQL Server připojit aplikace OLE DB k Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics a Microsoft Fabric pomocí federované identity.
Mezi metody ověřování Microsoft Entra patří:
- Uživatelské jméno a heslo
- Token přístupu
- Integrované ověřování
Verze 18.3.0 přidává podporu pro následující metody ověřování Microsoft Entra:
Interaktivní ověřování
Ověřování spravované identity (pouze z virtuálního počítače Azure nakonfigurovaného pomocí spravované identity)
Verze 18.5.0 přidává podporu pro následující metodu ověřování:
- Ověřování instančního objektu Microsoft Entra
Poznámka:
Použití následujících režimů autentizace s nastavením DataTypeCompatibility (nebo jeho odpovídající vlastností) na 80 není podporováno:
- Ověřování Microsoft Entra pomocí uživatelského jména a hesla
- Ověřování Microsoft Entra pomocí přístupového tokenu
- Integrované ověřování Microsoft Entra
- Interaktivní ověřování Microsoft Entra
- Ověřování spravovaných identit Microsoft Entra
- Ověřování instančního objektu Microsoft Entra
Pokud chcete použít ověřování Microsoft Entra, musíte nakonfigurovat zdroj dat Azure SQL. Další informace najdete v tématu Konfigurace a správa ověřování Microsoft Entra pro Azure SQL.
Klíčová slova a vlastnosti připojovacího řetězce
Pro podporu ověřování Microsoft Entra jsme zavedli následující klíčová slova připojovacího řetězce:
| Klíčové slovo připojovacího stringu | Vlastnost připojení | Description |
|---|---|---|
| Token přístupu | SSPROP_AUTH_ACCESS_TOKEN |
Určuje přístupový token pro ověření v Microsoft Entra ID. |
| Autentizace | SSPROP_AUTH_MODE |
Určuje metodu ověřování, která se má použít. |
Další informace o nových klíčových slovech a vlastnostech najdete na následujících stránkách:
- Použití klíčových slov připojovacího řetězce s ovladačem OLE DB pro SQL Server
- Inicializace a vlastnosti autorizace
Ověřování šifrování a certifikátu
Další informace najdete v tématu Šifrování a ověření certifikátu .
Doplňky grafického uživatelského rozhraní
Grafické uživatelské rozhraní ovladače bylo vylepšeno tak, aby umožňovalo ověřování Microsoft Entra. Další informace najdete tady:
Příklady připojovacích řetězců
Tato část ukazuje příklady nových a existujících klíčových slov připojovacího řetězce, která se mají použít s IDataInitialize::GetDataSource a DBPROP_INIT_PROVIDERSTRING vlastností.
Ověřování SQL
- Pomocí
IDataInitialize::GetDataSource:- Nový:
Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=SqlPassword; ID uživatele=[uživatelské_jméno]; Password=[password]; Použití šifrování pro data = povinné
- Zastaralý
Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; ID uživatele=[uživatelské_jméno]; Password=[password]; Použití šifrování pro data = povinné
- Nový:
- Pomocí
DBPROP_INIT_PROVIDERSTRING:- Nový:
Server=[server]; Database=[database]; Authentication=SqlPassword; UID=[uživatelské jméno]; PWD=[heslo]; Encrypt=Mandatory
- Zastaralý
Server=[server]; Database=[database]; UID=[uživatelské jméno]; PWD=[heslo]; Encrypt=Mandatory
- Nový:
Integrované ověřování systému Windows pomocí rozhraní SSPI (Security Support Provider Interface)
- Pomocí
IDataInitialize::GetDataSource:- Nový:
Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryIntegrated; Použití šifrování pro data = povinné
- Zastaralý
Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Integrated Security=SSPI; Použití šifrování pro data = povinné
- Nový:
- Pomocí
DBPROP_INIT_PROVIDERSTRING:- Nový:
Server=[server]; Database=[database]; Authentication=ActiveDirectoryIntegrated; Encrypt=Mandatory
- Zastaralý
Server=[server];Database=[database];Trusted_Connection=ano;Encrypt=Povinné
- Nový:
Ověřování uživatelským jménem a heslem Microsoft Entra
Poznámka:
Možnost ověřování ActiveDirectoryPassword (ověřování hesla Microsoft Entra ID) je zastaralá.
Heslo Microsoft Entra ID je založené na udělení přihlašovacích údajů vlastníka prostředku OAuth 2.0 (ROPC), které aplikaci umožňuje přihlásit se uživatele přímo zpracováním hesla.
Microsoft doporučuje nepoužívat tok ROPC; není kompatibilní s vícefaktorovým ověřováním (MFA). Ve většině scénářů jsou k dispozici a doporučeny bezpečnější alternativy. Tento tok vyžaduje vysokou míru důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že nejsou možné bezpečnější toky. Microsoft odchází od tohoto vysoce rizikového toku ověřování, aby chránil uživatele před škodlivými útoky. Další informace najdete v tématu Plánování povinného vícefaktorového ověřování pro Azure.
Pokud je k dispozici kontext uživatele, použijte ověřování ActiveDirectoryInteractive.
Pokud kontext uživatele není dostupný a vaše aplikace běží v infrastruktuře Azure, použijte ActiveDirectoryMSI (nebo ActiveDirectoryManagedIdentity v některých ovladačích). Spravovaná identita eliminuje režii při údržbě a obměně tajných kódů a certifikátů. Pokud nemůžete použít spravovanou identitu, použijte ověřování ActiveDirectoryServicePrincipal.
Výstraha
Nepoužívejte ověřování pomocí Service Principal, pokud je k dispozici kontext uživatele. Přístup pouze pro aplikace má ze své podstaty vysokou úroveň oprávnění, často uděluje přístup k celé doméně nájemníka a potenciálně umožňuje škodlivému aktérovi přístup k datům zákazníků pro libovolného uživatele.
- Pomocí
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryPassword; ID uživatele=[uživatelské_jméno]; Password=[password]; Použití šifrování pro data = povinné
- Pomocí
DBPROP_INIT_PROVIDERSTRING:Server=[server]; Database=[database]; Authentication=ActiveDirectoryPassword; UID=[uživatelské jméno]; PWD=[heslo]; Encrypt=Mandatory
Integrované ověřování Microsoft Entra
- Pomocí
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryIntegrated; Použití šifrování pro data = povinné
- Pomocí
DBPROP_INIT_PROVIDERSTRING:Server=[server]; Database=[database]; Authentication=ActiveDirectoryIntegrated; Encrypt=Mandatory
Ověřování Microsoft Entra pomocí přístupového tokenu
- Pomocí
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Přístupový token=[přístupový token]; Použití šifrování pro data = povinné
- Pomocí
DBPROP_INIT_PROVIDERSTRING:Poskytnutí přístupového tokenu prostřednictvím
DBPROP_INIT_PROVIDERSTRINGnení podporováno.
Interaktivní ověřování Microsoft Entra
- Pomocí
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryInteractive; ID uživatele=[uživatelské_jméno]; Použití šifrování pro data = povinné
- Pomocí
DBPROP_INIT_PROVIDERSTRING:Server=[server]; Database=[database]; Authentication=ActiveDirectoryInteractive; UID=[uživatelské jméno]; Encrypt=Mandatory
Ověřování identit spravovaných službou Microsoft Entra
- Pomocí
IDataInitialize::GetDataSource:- Spravovaná identita přiřazená uživatelem:
Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryMSI; ID uživatele=[ID objektu]; Použití šifrování pro data = povinné
- Spravovaná identita přiřazená systémem:
Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryMSI; Použití šifrování pro data = povinné
- Spravovaná identita přiřazená uživatelem:
- Pomocí
DBPROP_INIT_PROVIDERSTRING:- Spravovaná identita přiřazená uživatelem:
Server=[server]; Database=[database]; Authentication=ActiveDirectoryMSI; UID=[ID objektu]; Encrypt=Povinné
- Spravovaná identita přiřazená systémem:
Server=[server]; Database=[database]; Authentication=ActiveDirectoryMSI; Encrypt=Mandatory
- Spravovaná identita přiřazená uživatelem:
Ověřování instančního objektu Microsoft Entra
- Pomocí
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Zdroj dat=[server]; Initial Catalog=[database]; Authentication=ActiveDirectoryServicePrincipal; ID uživatele=[ID aplikace (klienta)]; Password=[Tajný kód aplikace (klienta)]; Použití šifrování pro data = povinné
- Pomocí
DBPROP_INIT_PROVIDERSTRING:Server=[server]; Database=[database]; Authentication=ActiveDirectoryServicePrincipal; UID=[ID aplikace (klienta)]; PWD=[Tajný kód aplikace (klienta)]; Encrypt=Mandatory
Ukázky kódu
Následující ukázky ukazují kód potřebný pro připojení k ID Microsoft Entra s klíčovými slovy připojení.
Token přístupu
#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();
}
Integrovaná služba Active Directory
#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();
}
Související obsah
Autorizuje přístup k webovým aplikacím Microsoft Entra pomocí toku udělení kódu OAuth 2.0.
Přečtěte si o ověřování Microsoft Entra na SQL Serveru.
Nakonfigurujte připojení ovladačů pomocí klíčových slov připojovacího řetězce , která ovladač OLE DB podporuje.