Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
OLE DB sürücüsünü indirme
Amaç
18.2.1 sürümünden başlayarak SQL Server için Microsoft OLE DB Sürücüsü, OLE DB uygulamalarının federasyon kimliği kullanarak Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Azure Synapse Analytics ve Microsoft Fabric'e bağlanmasına olanak tanır.
Microsoft Entra kimlik doğrulama yöntemleri şunlardır:
- Kullanıcı adı ve parola
- Erişim belirteci
- Tümleşik kimlik doğrulaması
Sürüm 18.3.0 , aşağıdaki Microsoft Entra kimlik doğrulama yöntemleri için destek ekler:
Etkileşimli kimlik doğrulaması
Yönetilen kimlik doğrulaması (yalnızca Yönetilen Kimlik ile yapılandırılmış Azure Sanal Makinesi içinden)
Sürüm 18.5.0 , aşağıdaki kimlik doğrulama yöntemi için destek ekler:
- Microsoft Entra hizmet sorumlusu kimlik doğrulaması
Uyarı
aşağıdaki kimlik doğrulama modlarının DataTypeCompatibility (veya buna karşılık gelen özelliğinin) olarak ayarlanması 80desteklenmez :
- Kullanıcı adı ve parola kullanarak Microsoft Entra kimlik doğrulaması
- Erişim belirtecini kullanarak Microsoft Entra kimlik doğrulaması
- Microsoft Entra tümleşik kimlik doğrulaması
- Microsoft Entra etkileşimli kimlik doğrulaması
- Microsoft Entra yönetilen kimlik doğrulaması
- Microsoft Entra hizmet sorumlusu kimlik doğrulaması
Microsoft Entra kimlik doğrulamasını kullanmak için Azure SQL veri kaynağınızı yapılandırmanız gerekir. Daha fazla bilgi için bkz. Azure SQL ile Microsoft Entra kimlik doğrulamasını yapılandırma ve yönetme.
Bağlantı dizesi anahtar sözcükleri ve özellikleri
Microsoft Entra kimlik doğrulamasını desteklemek için aşağıdaki bağlantı dizesi anahtar sözcükleri kullanıma sunulmuştur:
| Bağlantı dizesi anahtar sözcüğü | Bağlantı özelliği | Description |
|---|---|---|
| Erişim Belirteci | SSPROP_AUTH_ACCESS_TOKEN |
Microsoft Entra ID kimlik doğrulaması için bir erişim belirteci belirtir. |
| Authentication | SSPROP_AUTH_MODE |
Kullanılacak kimlik doğrulama yöntemini belirtir. |
Yeni anahtar sözcükler/özellikler hakkında daha fazla bilgi için aşağıdaki sayfalara bakın:
- SQL Server için OLE DB Sürücüsü ile Bağlantı Dizesi Anahtar Sözcüklerini Kullanma
- Başlatma ve Yetkilendirme Özellikleri
Şifreleme ve sertifika doğrulama
Daha fazla bilgi için bkz . Şifreleme ve sertifika doğrulaması .
GUI eklemeleri
Sürücü grafik kullanıcı arabirimi, Microsoft Entra kimlik doğrulamasına izin verecek şekilde geliştirilmiştir. Daha fazla bilgi için bakınız:
Örnek bağlantı dizeleri
Bu bölümde IDataInitialize::GetDataSource ve DBPROP_INIT_PROVIDERSTRING özellikleriyle kullanılacak yeni ve mevcut bağlantı dizesi anahtar sözcüklerinin örnekleri gösterilir.
SQL kimlik doğrulaması
- kullanarak
IDataInitialize::GetDataSource:- Yeni:
Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Authentication=SqlPassword; Kullanıcı Kimliği=[kullanıcıadı]; Password=[password]; Veri için Şifrelemeyi Kullanma=Zorunlu
- Kullanımdan Kaldırılmış
Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Kullanıcı Kimliği=[kullanıcıadı]; Password=[password]; Veri için Şifrelemeyi Kullanma=Zorunlu
- Yeni:
- kullanarak
DBPROP_INIT_PROVIDERSTRING:- Yeni:
Sunucu=[sunucu]; Veritabanı=[veritabanı]; Authentication=SqlPassword; UID=[kullanıcıadı]; PWD=[parola]; Encrypt=Zorunlu
- Kullanımdan Kaldırılmış
Sunucu=[sunucu]; Veritabanı=[veritabanı]; UID=[kullanıcıadı]; PWD=[parola]; Encrypt=Zorunlu
- Yeni:
Güvenlik Desteği Sağlayıcısı Arabirimi (SSPI) kullanarak tümleşik Windows kimlik doğrulaması
- kullanarak
IDataInitialize::GetDataSource:- Yeni:
Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Authentication=ActiveDirectoryIntegrated; Veri için Şifrelemeyi Kullanma=Zorunlu
- Kullanımdan Kaldırılmış
Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Tümleşik Güvenlik=SSPI; Veri için Şifrelemeyi Kullanma=Zorunlu
- Yeni:
- kullanarak
DBPROP_INIT_PROVIDERSTRING:- Yeni:
Sunucu=[sunucu]; Veritabanı=[veritabanı]; Kimlik Doğrulama=ActiveDirectoryIntegrated; Şifreleme=Zorunlu
- Kullanımdan Kaldırılmış
Sunucu=[sunucu]; Veritabanı=[veritabanı]; Trusted_Connection=evet; Encrypt=Zorunlu
- Yeni:
Microsoft Entra kullanıcı adı ve parola kimlik doğrulaması
Important
ActiveDirectoryPassword kimlik doğrulama seçeneği (parola kimlik doğrulaması Microsoft Entra ID) Microsoft SQL sürücülerinde kullanım dışıdır. Bu yüksek riskli kimlik doğrulama akışı zorunlu Microsoft Entra çok faktörlü kimlik doğrulaması (MFA) ile uyumsuzdur ve MFA'nın zorlandığı kiracılarda çalışmayabilir. Farklı bir Microsoft Entra kimlik doğrulama yöntemine geçmeyi planlayın.
Microsoft Entra ID parola kimlik doğrulaması, OAuth 2.0 Kaynak Sahibi Parola Kimlik Bilgileri (ROPC) iznini temel alır ve bu da bir uygulamanın parolasını doğrudan işleyerek kullanıcıda oturum açmasına olanak tanır.
Microsoft, MFA ile uyumsuz olduğundan ROPC akışını kullanmamanızı önerir. Çoğu senaryoda daha güvenli alternatifler kullanılabilir ve önerilir. Bu akış, uygulamaya yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca daha güvenli akışlar uygun olmadığında kullanın. Microsoft, kullanıcıları kötü amaçlı saldırılardan korumak için bu yüksek riskli kimlik doğrulama akışından uzaklaşıyor. Daha fazla bilgi için bkz. Azure için zorunlu çok faktörlü kimlik doğrulamasını planlama.
Oturum açma sırasında bir kullanıcı mevcutsa, denetim izinin oturum açan kullanıcıya atfedilmesi ve Koşullu Erişim ilkelerinin uygulanması için ActiveDirectoryInteractive veya ActiveDirectoryIntegrated kimlik doğrulamasını kullanın.
Katılımsız hizmetten hizmete senaryoları için Microsoft Entra hizmet hesabı kılavuzunu izleyin:
- Uygulamanız Azure altyapıda çalışıyorsa ActiveDirectoryMSI (veya bazı sürücülerde ActiveDirectoryManagedIdentity) kullanın. Yönetilen kimlikler, gizli anahtarların ve sertifikaların yönetimi ile yenilenmesinden kaynaklanan ek yükü ortadan kaldırır.
- Yönetilen kimlik kullanılamıyorsa (örneğin, uygulama Azure dışında çalışır), ActiveDirectoryServicePrincipal kullanın. Sürücü destekliyorsa, istemci parolası yerine istemci sertifikasını tercih edin. Sertifikayla, özel anahtar istemcide kalır ve istemcinin kimliğini doğrulamak için Microsoft Entra yalnızca imzalı bir onay gönderilir. Anahtar donanımda (TPM veya HSM gibi) depolanıyorsa ya da dışarı aktarılamaz olarak işaretlenmişse, istemci gizli anahtarında olduğu gibi dize olarak dışarı kopyalanamaz.
- hizmet hesabı olarak Microsoft Entra kullanıcı hesabı kullanmayın.
- kullanarak
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Authentication=ActiveDirectoryPassword; Kullanıcı Kimliği=[kullanıcıadı]; Password=[password]; Veri için Şifrelemeyi Kullanma=Zorunlu
- kullanarak
DBPROP_INIT_PROVIDERSTRING:Sunucu=[sunucu]; Veritabanı=[veritabanı]; Authentication=ActiveDirectoryPassword; UID=[kullanıcıadı]; PWD=[parola]; Encrypt=Zorunlu
Microsoft Entra tümleşik kimlik doğrulaması
- kullanarak
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Authentication=ActiveDirectoryIntegrated; Veri için Şifrelemeyi Kullanma=Zorunlu
- kullanarak
DBPROP_INIT_PROVIDERSTRING:Sunucu=[sunucu]; Veritabanı=[veritabanı]; Kimlik Doğrulama=ActiveDirectoryIntegrated; Şifreleme=Zorunlu
Erişim belirteci kullanarak Microsoft Entra kimlik doğrulaması
- kullanarak
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Erişim Belirteci=[erişim belirteci]; Veri için Şifrelemeyi Kullanma=Zorunlu
- kullanarak
DBPROP_INIT_PROVIDERSTRING:DBPROP_INIT_PROVIDERSTRINGüzerinden erişim belirteci sağlanması desteklenmiyor
Microsoft Entra etkileşimli kimlik doğrulaması
- kullanarak
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Authentication=ActiveDirectoryInteractive; Kullanıcı Kimliği=[kullanıcıadı]; Veri için Şifrelemeyi Kullanma=Zorunlu
- kullanarak
DBPROP_INIT_PROVIDERSTRING:Sunucu=[sunucu]; Veritabanı=[veritabanı]; Authentication=ActiveDirectoryInteractive; UID=[kullanıcıadı]; Encrypt=Zorunlu
Microsoft Entra yönetilen kimlik doğrulaması
- kullanarak
IDataInitialize::GetDataSource:- Kullanıcı tarafından atanan yönetilen kimlik:
Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Authentication=ActiveDirectoryMSI; Kullanıcı Kimliği=[Nesne Kimliği]; Veri için Şifrelemeyi Kullanma=Zorunlu
- Sistem tarafından atanan yönetilen kimlik:
Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; İlk Katalog=[veritabanı]; Authentication=ActiveDirectoryMSI; Veri için Şifrelemeyi Kullanma=Zorunlu
- Kullanıcı tarafından atanan yönetilen kimlik:
- kullanarak
DBPROP_INIT_PROVIDERSTRING:- Kullanıcı tarafından atanan yönetilen kimlik:
Sunucu=[sunucu]; Veritabanı=[veritabanı]; Kimlik Doğrulama=ActiveDirectoryMSI; UID=[Nesne Kimliği]; Şifreleme=Zorunlu
- Sistem tarafından atanan yönetilen kimlik:
Sunucu=[sunucu]; Veritabanı=[veritabanı]; Kimlik Doğrulama=ActiveDirectoryMSI; Şifreleme=Zorunlu
- Kullanıcı tarafından atanan yönetilen kimlik:
Microsoft Entra hizmet sorumlusu kimlik doğrulaması
- kullanarak
IDataInitialize::GetDataSource:Provider=MSOLEDBSQL19; Veri Kaynağı=[sunucu]; Başlangıç Kataloğu=[veritabanı]; Authentication=ActiveDirectoryServicePrincipal; Kullanıcı Kimliği=[Uygulama (istemci) Kimliği]; Parola=[Uygulama (istemci) gizli dizisi]; Veri için Şifrelemeyi Kullanma=Zorunlu
- kullanarak
DBPROP_INIT_PROVIDERSTRING:Sunucu=[sunucu]; Veritabanı=[veritabanı]; Authentication=ActiveDirectoryServicePrincipal; UID=[Uygulama (istemci) kimliği]; PWD=[Uygulama (istemci) gizli dizisi]; Encrypt=Zorunlu
Kod örnekleri
Aşağıdaki örneklerde bağlantı anahtar sözcükleriyle Microsoft Entra ID'ye bağlanmak için gereken kod gösterilmektedir.
Erişim Belirteci
#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 ile Entegre
#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();
}
İlgili içerik
OAuth 2.0 kod verme akışını kullanarak Microsoft Entra web uygulamalarına erişim yetkisi verin.
SQL Server'da Microsoft Entra kimlik doğrulaması hakkında bilgi edinin.
OLE DB sürücüsünün desteklediği bağlantı dizesi anahtar sözcüklerini kullanarak sürücü bağlantılarını yapılandırın.