Megosztás:


A Microsoft Entra-azonosító használata

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

OLE DB-illesztő letöltése

Cél

A 18.2.1-es verziótól kezdve az SQL Serverhez készült Microsoft OLE DB Driver lehetővé teszi, hogy az OLE DB-alkalmazások összevont identitással csatlakozzanak az Azure SQL Database-hez, az Azure SQL Managed Instance-hez, az Azure Synapse Analyticshez és a Microsoft Fabrichez.

A Microsoft Entra hitelesítési módszerei a következők:

  • Felhasználónév és jelszó
  • Hozzáférési jogkivonat
  • Integrált hitelesítés

A 18.3.0-s verzió az alábbi Microsoft Entra hitelesítési módszerek támogatását nyújtja:

A 18.5.0-s verzió a következő hitelesítési módszer támogatását nyújtja:

  • Microsoft Entra szolgáltatói név hitelesítése

Megjegyzés:

A következő hitelesítési módok DataTypeCompatibility használata (vagy annak megfelelő tulajdonsága) 80 nem támogatott:

  • Microsoft Entra-hitelesítés felhasználónévvel és jelszóval
  • Microsoft Entra-hitelesítés hozzáférési jogkivonat használatával
  • Microsoft Entra integrált hitelesítés
  • Microsoft Entra interaktív hitelesítés
  • Microsoft Entra által felügyelt identitások hitelesítése
  • Microsoft Entra szolgáltatási főazonosító hitelesítése

A Microsoft Entra-hitelesítés használatához konfigurálnia kell az Azure SQL-adatforrást. További információért lásd: A Microsoft Entra-hitelesítés konfigurálása és kezelése az Azure SQL.

Kapcsolati karaktersorozat kulcsszavak és tulajdonságok

A Microsoft Entra-hitelesítés támogatásához a következő kapcsolati sztring-kulcsszavakat vezettük be:

Kapcsolati string kulcsszó Kapcsolati tulajdonság Description
Hozzáférési jogkivonat SSPROP_AUTH_ACCESS_TOKEN Egy hozzáférési tokent ad meg a Microsoft Entra ID hitelesítéséhez.
Authentication SSPROP_AUTH_MODE A használni kívánt hitelesítési módszert adja meg.

Az új kulcsszavakról/tulajdonságokról az alábbi oldalakon talál további információt:

Titkosítás és tanúsítvány érvényesítése

További információkért lásd a titkosítást és a tanúsítványérvényesítést .

Grafikus felhasználói felület hozzáadásai

Az illesztő grafikus felhasználói felülete tovább lett fejlesztve, hogy lehetővé tegye a Microsoft Entra-hitelesítést. További információkért lásd:

Példa kapcsolati sztringekre

Ez a szakasz példákat mutat be az új és meglévő kapcsolati sztring kulcsszavakra, amelyeket a IDataInitialize::GetDataSource és DBPROP_INIT_PROVIDERSTRING tulajdonsággal kell használni.

SQL-hitelesítés

  • A IDataInitialize::GetDataSource használata:
    • Új:

      Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Authentication=SqlPassword; Felhasználóazonosító=[felhasználónév]; Password=[password]; Titkosítás használata Data=Kötelező

    • Elavult:

      Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Felhasználóazonosító=[felhasználónév]; Password=[password]; Titkosítás használata Data=Kötelező

  • A DBPROP_INIT_PROVIDERSTRING használatával:
    • Új:

      Server=[kiszolgáló]; Database=[adatbázis]; Authentication=SqlPassword; UID=[felhasználónév]; PWD=[jelszó]; Encrypt=Kötelező

    • Elnézett:

      Server=[kiszolgáló]; Database=[adatbázis]; UID=[felhasználónév]; PWD=[jelszó]; Encrypt=Kötelező

Integrált Windows-hitelesítés biztonsági támogatási szolgáltatói felülettel (SSPI)

  • IDataInitialize::GetDataSource használatával:
    • Új:

      Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Authentication=ActiveDirectoryIntegrated; Titkosítás használata adat=Kötelező

    • Elavult:

      Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Integrated Security=SSPI; Titkosítás használata Data=Kötelező

  • Az DBPROP_INIT_PROVIDERSTRING használatával:
    • Új:

      Server=[kiszolgáló]; Database=[adatbázis]; Hitelesítés=ActiveDirectoryIntegrated; Encrypt=Kötelező

    • Elavult:

      Server=[kiszolgáló]; Database=[adatbázis]; Trusted_Connection=igen; Encrypt=Kötelező

Microsoft Entra felhasználónév és jelszó-hitelesítés

  • IDataInitialize::GetDataSource használatával:

    Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Authentication=ActiveDirectoryPassword; Felhasználóazonosító=[felhasználónév]; Jelszó=[jelszó]; Adattitkosítás használata=Kötelező

  • DBPROP_INIT_PROVIDERSTRING használatával:

    Server=[kiszolgáló]; Database=[adatbázis]; Authentication=ActiveDirectoryPassword; UID=[felhasználónév]; PWD=[jelszó]; Encrypt=Kötelező

Microsoft Entra integrált hitelesítés

  • IDataInitialize::GetDataSource használatával:

    Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Authentication=ActiveDirectoryIntegrated; Titkosítás használata adat=Kötelező

  • DBPROP_INIT_PROVIDERSTRING használatával:

    Server=[kiszolgáló]; Database=[adatbázis]; Hitelesítés=ActiveDirectoryIntegrated; Encrypt=Kötelező

Microsoft Entra-hitelesítés hozzáférési jogkivonat használatával

  • IDataInitialize::GetDataSource használatával:

    Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Access Token=[hozzáférési jogkivonat]; Titkosítás használata Data=Kötelező

  • DBPROP_INIT_PROVIDERSTRING használatával:

    A hozzáférési token DBPROP_INIT_PROVIDERSTRING használatával történő megadása nem támogatott

Microsoft Entra interaktív hitelesítés

  • IDataInitialize::GetDataSource használatával:

    Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Authentication=ActiveDirectoryInteractive; Felhasználóazonosító=[felhasználónév]; Titkosítás használata Data=Kötelező

  • DBPROP_INIT_PROVIDERSTRING használatával:

    Server=[kiszolgáló]; Database=[adatbázis]; Authentication=ActiveDirectoryInteractive; UID=[felhasználónév]; Encrypt=Kötelező

Microsoft Entra által felügyelt identitáshitelesítés

  • IDataInitialize::GetDataSource használatával:
    • Felhasználó által hozzárendelt felügyelt identitás:

      Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Authentication=ActiveDirectoryMSI; User ID=[Object ID]; Titkosítás használata az adatokhoz=Kötelező

    • Rendszer által hozzárendelt felügyelt identitás:

      Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Initial Catalog=[database]; Authentication=ActiveDirectoryMSI; Titkosítás használata Data=Kötelező

  • DBPROP_INIT_PROVIDERSTRING használatával:
    • Felhasználó által hozzárendelt felügyelt identitás:

      Server=[kiszolgáló]; Database=[adatbázis]; Authentication=ActiveDirectoryMSI; UID=[Objektumazonosító]; Encrypt=Kötelező

    • Rendszer által hozzárendelt felügyelt identitás:

      Server=[kiszolgáló]; Database=[adatbázis]; Authentication=ActiveDirectoryMSI; Encrypt=Kötelező

Microsoft Entra szolgáltatási főazonosító hitelesítése

  • IDataInitialize::GetDataSource használatával:

    ** Provider=MSOLEDBSQL19; Adatforrás=[kiszolgáló]; Kezdeti Katalógus=[adatbázis]; Hitelesítés=ActiveDirectoryServicePrincipal; Felhasználói azonosító=[Alkalmazás (ügyfél) azonosítója]; Jelszó=[Alkalmazás (ügyfél) titkos kódja]; Titkosítás használata az adatokhoz=Kötelező

  • DBPROP_INIT_PROVIDERSTRING használatával:

    Server=[kiszolgáló]; Database=[adatbázis]; Authentication=ActiveDirectoryServicePrincipal; UID=[Alkalmazás (ügyfél) azonosítója]; PWD=[Alkalmazás (ügyfél) titkos kódja]; Encrypt=Kötelező

Kódrészletek

Az alábbi minták a Microsoft Entra-azonosítóhoz való csatlakozáshoz szükséges kódot mutatják be kapcsolati kulcsszavakkal.

Hozzáférési jogkivonat

#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();
}

Integrált 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();
}