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.
ODBC sürücüsü indirme
Uyarı
Microsoft Entra ID, Azure Active Directory'nin (Azure AD) yeni adı olmasına rağmen, mevcut ortamların bozulmasını önlemek için Azure AD, UI alanları, bağlantı sağlayıcıları, hata kodları ve cmdletler gibi bazı sabit kodlu öğelerde hâlâ varlığını sürdürüyor. Bu makalede, iki ad birbirinin yerine kullanılabilir.
Amaç
SQL Server sürüm 13.1 ve üzeri için Microsoft ODBC Sürücüsü, ODBC uygulamalarının Microsoft Entra Id kimliklerini kullanarak Azure SQL Veritabanı'na veya Azure SQL Yönetilen Örneği'ne bağlanmasına olanak tanır. Kimlik doğrulaması kullanıcı adı ve parola, Microsoft Entra erişim belirteci, Microsoft Entra yönetilen kimliği (17.3+) veya bir federe etki alanına katılmış ortamda (17.6+ Linux/macOS üzerinde) Entegre Windows Kimlik Doğrulaması ile yapılabilir. ODBC Sürücüsü sürüm 13.1 için Microsoft Entra erişim belirteci kimlik doğrulaması sadece Windows içindir. ODBC Sürücüsü sürüm 17 ve üzeri, tüm platformlarda (Windows, Linux ve macOS) bu kimlik doğrulamasını destekler. Çok faktörlü kimlik doğrulamasını destekleyen yeni bir Microsoft Entra etkileşimli kimlik doğrulama yöntemi, Windows için ODBC Sürücüsü sürüm 17.1'de kullanıma sunulmuştur. Hem sistem tarafından atanan hem de kullanıcı tarafından atanan yönetilen kimlikler için ODBC Sürücüsü sürüm 17.3.1.1'e yeni bir Microsoft Entra yönetilen kimlik doğrulama yöntemi eklendi. Bu seçeneklerin tümü yeni DSN ve bağlantı dizesi anahtar sözcükleri ve bağlantı öznitelikleri kullanılarak gerçekleştirilir.
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.
Uyarı
Linux ve macOS'ta 17.6 sürümünden önceki ODBC Sürücüsü yalnızca Microsoft Entra Kimliği üzerinden Microsoft Entra kimlik doğrulamasını destekler. Linux veya macOS istemcisinden Microsoft Entra kullanıcı adı/parola kimlik doğrulaması kullanıyorsanız ve Microsoft Entra yapılandırmanız istemcinin bir Microsoft Entra Federasyon Hizmetleri uç noktasında kimlik doğrulaması gerçekleştirmesini gerektiriyorsa, kimlik doğrulaması başarısız olabilir. Sürücü sürümü 17.6 itibariyle bu sınırlama kaldırılmıştır.
Yeni ve/veya Değiştirilmiş DSN ve Bağlantı Dizesi Anahtar Sözcükleri
Anahtar sözcüğü, Authentication kimlik doğrulama modunu denetlemek için bir DSN veya bağlantı dizesiyle bağlanırken kullanılabilir. Bağlantı dizesinde ayarlanan değer, sağlanırsa DSN'de bunu geçersiz kılar. Ayarın Authentication, bağlantı dizesi ve DSN değerlerinden hesaplanan değerdir.
| İsim | Değerler/Varsayılan | Description |
|---|---|---|
Authentication |
(not set)(varsayılan), (empty string), SqlPassword, ActiveDirectoryIntegrated, ActiveDirectoryInteractive, ActiveDirectoryMsi, , ActiveDirectoryServicePrincipal, ActiveDirectoryPassword [KULLANIM DIŞI] |
Kimlik doğrulama modunu denetler.(not set) - Diğer anahtar sözcükler tarafından belirlenen kimlik doğrulama modu (mevcut eski bağlantı seçenekleri.)(empty string) - (Yalnızca bağlantı dizesi.) DSN'de ayarlanan bir Authentication değerini geçersiz kıl ve kaldır.SqlPassword - Kullanıcı adı ve parola kullanarak SQL'de doğrudan kimlik doğrulaması.ActiveDirectoryIntegrated
-
Windows ve Linux/Mac 17.6+, yalnızca sürücü. Microsoft Entra ID aracılığıyla federasyon edilmiş bir Windows kimlik bilgisiyle entegre kimlik doğrulaması yapın.ActiveDirectoryInteractive
-
Yalnızca Windows sürücüsü. Etkileşimli kimlik doğrulaması kullanarak Microsoft Entra kimliğiyle kimlik doğrulaması.ActiveDirectoryMsi - Microsoft Entra tarafından yönetilen kimlik ile kimlik doğrulaması. Kullanıcı tarafından atanan bir kimlik için UID'yi Azure App Service veya Azure Container Instance için kimliğin istemci kimliğine ayarlayın; aksi takdirde nesne kimliğini kullanın. Sistem tarafından atanan kimlik için UID gerekli değildir.ActiveDirectoryServicePrincipal - (17.7+) Microsoft Entra hizmet sorumlusuyla kimlik doğrulaması. UID, hizmet sorumlusunun istemci kimliğine ayarlanır. PWD, istemci gizli dizisine ayarlanır.ActiveDirectoryPassword - [KULLANIM DIŞI] Kullanıcı adı ve parola kullanarak Microsoft Entra kimliğiyle kimlik doğrulaması.ActiveDirectoryPassword kullanım dışı bırakıldı. Daha fazla bilgi için bkz. ActiveDirectoryPassword kullanım dışı bırakıldı. |
Encrypt |
(not set)(varsayılan), Yes/Mandatory(18.0+),No/Optional (18.0+), Strict(18.0+) |
Bağlantı için şifrelemeyi denetler. Ayarın ön öznitelik değeri Authentication DSN veya bağlantı dizesinde değilse none , varsayılan değer olur Yes. Varsayılan, 18.0.1+ sürümlerinde de Yes geçerlidir. Aksi takdirde, varsayılan değer şeklindedir No. Özniteliği SQL_COPT_SS_AUTHENTICATION , ön öznitelik değerini Authenticationgeçersiz kılarsa, DSN veya bağlantı dizesi veya bağlantı özniteliğinde Şifreleme değerini açıkça ayarlayın. Şifreleme'nin önceki öznitelik değeri, DSN veya bağlantı dizesinde Yes olarak ayarlanmışsa Yes'dir. |
Yeni ve/veya Değiştirilen Bağlantı Öznitelikleri
Aşağıdaki bağlantı öncesi bağlantı öznitelikleri Microsoft Entra kimlik doğrulamasını destekleyecek şekilde kullanıma sunulmuştur veya değiştirilmiştir. Bir bağlantı özniteliğine karşılık gelen bir bağlantı dizesi veya DSN anahtar sözcüğü olduğunda ve ayarlandığında, bağlantı özniteliği önceliklidir.
| Özellik | Türü | Değerler | Varsayılan | Description |
|---|---|---|---|---|
SQL_COPT_SS_AUTHENTICATION |
SQL_IS_INTEGER |
SQL_AU_NONE, SQL_AU_PASSWORD, SQL_AU_AD_INTEGRATED, , SQL_AU_AD_PASSWORD, SQL_AU_AD_INTERACTIVE, SQL_AU_AD_MSI, SQL_AU_AD_SPA, SQL_AU_RESET |
(ayarlanmadı) | Yukarıdaki anahtar sözcüğün açıklamasına Authentication bakın.
SQL_AU_NONE, DSN ve/veya bağlantı dizesinde tanımlı bir Authentication değerini açıkça geçersiz kılmak için sağlanırken, SQL_AU_RESET ayarlanmışsa özniteliği kaldırır, böylece DSN veya bağlantı dizesi değeri öncelikli olur. |
SQL_COPT_SS_ACCESS_TOKEN |
SQL_IS_POINTER |
ACCESSTOKEN veya NULL'a İşaretçi |
null | Null değilse, kullanılacak Microsoft Entra erişim belirtecini belirtir. Erişim belirtecini ve ayrıca , UID, PWDveya bağlantı dizesi anahtar sözcüklerini ya da Trusted_ConnectionAuthenticationeşdeğer özniteliklerini belirtmek bir hatadır. NOT: ODBC Sürücüsü sürüm 13.1 yalnızca Windows'ta bu ayarı destekler. |
SQL_COPT_SS_ENCRYPT |
SQL_IS_INTEGER |
SQL_EN_OFF, SQL_EN_ON |
(açıklamaya bakın) | Bağlantı için şifrelemeyi denetler.
SQL_EN_OFF ve SQL_EN_ON sırasıyla şifrelemeyi devre dışı bırakın ve etkinleştirin. Eğer Authentication ayarının ön öznitelik değeri none değilse veya SQL_COPT_SS_ACCESS_TOKEN ayarlandıysa, ve Encrypt ne DSN’de ne de bağlantı dizesinde belirtilmemişse, varsayılan olarak SQL_EN_ON olur. Aksi takdirde, varsayılan değer şeklindedir SQL_EN_OFF. Bağlantı özniteliği SQL_COPT_SS_AUTHENTICATION değil noneolarak ayarlanırsa, DSN veya bağlantı dizesinde belirtilmemişse SQL_COPT_SS_ENCRYPT açıkça istenen değere ayarlanırEncrypt. Bu özniteliğin etkin değeri , bağlantı için şifreleme kullanılıp kullanılmadığını denetler. |
SQL_COPT_SS_OLDPWD |
- | - | - | Microsoft Entra ilkeleri için parolalar ODBC bağlantısı aracılığıyla değiştirilemeyeceğinden, Microsoft Entra Kimliği ile desteklenmez. SQL Server Kimlik Doğrulaması için parola süre sonu SQL Server 2005'te kullanıma sunulmuştur. özniteliği, SQL_COPT_SS_OLDPWD istemcinin bağlantı için hem eski hem de yeni parolayı sağlamasına izin vermek için eklendi. Bu özellik ayarlandığında, bağlantı dizesi artık değiştirilen "eski parolayı" içerdiğinden, sağlayıcı ilk bağlantı veya gelecekteki bağlantılar için bağlantı havuzunu kullanmaz. |
SQL_COPT_SS_INTEGRATED_SECURITY |
SQL_IS_INTEGER |
SQL_IS_OFF,SQL_IS_ON |
SQL_IS_OFF |
Kullanım dışı; bunun yerine SQL_COPT_SS_AUTHENTICATION ayarlamak için SQL_AU_AD_INTEGRATED kullanın. Sunucu oturum açma işlemlerinde erişim doğrulaması için Windows Kimlik Doğrulaması 'nın (Linux ve macOS üzerinde Kerberos) kullanılmasını zorlar. Windows Kimlik Doğrulaması kullanıldığında, sürücü , SQLConnectveya SQLDriverConnect işleminin SQLBrowseConnectbir parçası olarak sağlanan kullanıcı tanımlayıcısını ve parola değerlerini yoksayar. |
ActiveDirectoryPassword kullanım dışı bırakıldı
Uyarı
ActiveDirectoryPassword kimlik doğrulama seçeneği (Microsoft Entra ID Parola kimlik doğrulaması) kullanım dışıdır.
Microsoft Entra Id parolası, OAuth 2.0 Kaynak Sahibi Parola Kimlik Bilgileri (ROPC) iznini temel alır. Bu, bir uygulamanın parolasını doğrudan işleyerek kullanıcıda oturum açmasına olanak tanır.
Microsoft, ROPC akışını kullanmamanızı önerir; çok faktörlü kimlik doğrulaması (MFA) ile uyumsuz. Ç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 kullanmalısınız. 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.
Kullanıcı bağlamı kullanılabilir olduğunda ActiveDirectoryInteractive kimlik doğrulamayı kullanın.
Kullanıcı bağlamı kullanılamadığında ve uygulamanız Azure altyapısında çalışıyorsa ActiveDirectoryMSI (veya bazı sürücülerde ActiveDirectoryManagedIdentity) kullanın. Yönetilen Kimlik, sırları ve sertifikaları koruma ve döndürme yükünü ortadan kaldırır. Yönetilen Kimlik'i kullanamıyorsanız ActiveDirectoryServicePrincipal kimlik doğrulamayı kullanın.
Uyarı
Kullanıcı bağlamı kullanılabilir olduğunda Hizmet Sorumlusu kimlik doğrulamayı kullanmayın. Yalnızca uygulama üzerinden erişim doğası gereği yüksek ayrıcalıklıdır. Genellikle kiracı genelinde erişim sağlayarak kötü niyetli bir kişinin herhangi bir kullanıcının müşteri verilerine erişmesine imkan tanıyabilir.
Microsoft Entra Id kullanıcı arabirimi eklemeleri (yalnızca Windows sürücüsü)
Sürücünün DSN kurulumu ve bağlantı kullanıcı arayüzleri (UI'ler), Microsoft Entra Kimliği ile kimlik doğrulaması yapmak için gereken ek seçeneklerle geliştirilmiştir.
Kullanıcı arabiriminde DSN oluşturma ve düzenleme
Sürücünün kurulum kullanıcı arabirimini kullanarak mevcut bir DSN'yi oluştururken veya düzenlerken Microsoft Entra kimlik doğrulama seçeneklerini kullanmak mümkündür:
Authentication=ActiveDirectoryIntegrated Azure SQL'e Microsoft Entra entegre kimlik doğrulaması için
Authentication=ActiveDirectoryPassword Azure SQL'de Microsoft Entra kullanıcı adı/parola kimlik doğrulaması için
Uyarı
ActiveDirectoryPassword kullanım dışı bırakıldı. Daha fazla bilgi için bkz. ActiveDirectoryPassword kullanım dışı bırakıldı.
Authentication=ActiveDirectoryInteractive Azure SQL'de Microsoft Entra etkileşimli kimlik doğrulaması için
Uyarı
Sürücü sürümü 17.9 itibarıyla etkileşimli kimlik doğrulama davranışı değişmiştir. Geçerli bir erişim simgesi sürücüde önbelleğe alınmadığı sürece kullanıcılar her zaman kimlik bilgileri girmeye zorlanacaktır. Bu değişiklik, Microsoft Entra'ya katılmış cihazlardaki kullanıcıların istem atlamasını ve kimlik doğrulaması kullanırken ActiveDirectoryInteractive önbelleğe alınmış kimlik bilgileriyle otomatik olarak oturum açmasını engeller.
Authentication=SqlPassword SQL Server ve Azure SQL'de kullanıcı adı/parola kimlik doğrulaması için
Trusted_Connection=Yes Windows'un eski SSPI ile entegre kimlik doğrulaması için
Authentication=ActiveDirectoryMsi Microsoft Entra yönetilen kimlik kimlik doğrulaması için
Authentication=ActiveDirectoryServicePrincipal Microsoft Entra hizmet sorumlusu kimlik doğrulaması için
tr-TR: Yedi seçenek sırasıyla Trusted_Connection=Yes (mevcut eski yalnızca Windows SSPI tümleşik kimlik doğrulama) ve Authentication=, ActiveDirectoryIntegrated, SqlPassword, ActiveDirectoryPassword, ActiveDirectoryInteractive, ActiveDirectoryMsi ve ActiveDirectoryServicePrincipal seçeneklerine karşılık gelir.
SQLDriverConnect İstemi (yalnızca Windows sürücüsü)
Bağlantıyı tamamlamak için gereken bilgileri istediğinde SQLDriverConnect tarafından görüntülenen istem iletişim kutusu, Microsoft Entra kimlik doğrulaması için dört yeni seçenek içerir:
Bu seçenekler, yukarıdaki DSN kurulum kullanıcı arabiriminde sağlanan altıya karşılık gelir.
Örnek bağlantı dizeleri
SQL Server Kimlik Doğrulaması - eski söz dizimi. Sunucu sertifikası doğrulanmaz ve şifreleme yalnızca sunucu tarafından zorunlu kılınırsa kullanılır. Kullanıcı adı/parola bağlantı dizesinde geçirilir.
server=Server;database=Database;UID=UserName;PWD=<password>;Encrypt=no;TrustServerCertificate=yes;SQL Kimlik Doğrulaması - yeni söz dizimi. Müşteri şifreleme talep eder (varsayılan değeri
Encrypttrue) ve sunucu sertifikası, şifreleme ayarına bakılmaksızın (ayarlandığı durumlar hariçTrustServerCertificateiletruearasında) doğrulanır. Kullanıcı adı/parola bağlantı dizesinde geçirilir.server=Server;database=Database;UID=UserName;PWD=<password>;Authentication=SqlPassword;SSPI kullanarak tümleşik Windows Kimlik Doğrulaması (Linux ve macOS üzerinde Kerberos) (SQL Server veya SQL IaaS için) - geçerli söz dizimi. Sunucu sertifikası, sunucu tarafından şifreleme gerekmediği sürece doğrulanmaz.
server=Server;database=Database;Trusted_Connection=yes;Encrypt=no;(Yalnızca Windows sürücüsü.) SSPI kullanarak tümleşik Windows Kimlik Doğrulaması (hedef veritabanı SQL Server'daysa veya Azure VM'lerinde SQL Server'daysa) - yeni söz dizimi. Müşteri şifreleme talep eder (varsayılan değeri
Encrypttrue) ve sunucu sertifikası, şifreleme ayarına bakılmaksızın (ayarlandığı durumlar hariçTrustServerCertificateiletruearasında) doğrulanır.server=Server;database=Database;Authentication=ActiveDirectoryIntegrated;Microsoft Entra kullanıcı adı/parola kimlik doğrulaması (hedef veritabanı Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği'ndeyse). Sunucu sertifikası, şifreleme ayarı her ne olursa olsun doğrulanır (ancak `
TrustServerCertificate` `true` olarak ayarlanmadıkça). Kullanıcı adı/parola bağlantı dizesinde geçirilir.Uyarı
ActiveDirectoryPassword kullanım dışı bırakıldı. Daha fazla bilgi için bkz. ActiveDirectoryPassword kullanım dışı bırakıldı.
server=Server;database=Database;UID=UserName;PWD=<password>;Authentication=ActiveDirectoryPassword;Encrypt=yes;(Windows ve Linux/macOS 17.6+, yalnızca sürücü.) Hedef veritabanının Azure SQL'de olduğu varsayılarak Microsoft Entra erişim belirteci için Windows hesabı kimlik bilgilerinin kullanılmasını içeren ADAL veya Kerberos kullanarak tümleşik Windows Kimlik Doğrulaması. Sunucu sertifikası, şifreleme ayarı her ne olursa olsun doğrulanır (ancak `
TrustServerCertificate` `true` olarak ayarlanmadıkça). Linux/macOS'ta uygun bir Kerberos anahtarının kullanılabilir olması gerekir. Daha fazla bilgi için Aşağıdaki Federasyon Hesapları ve Tümleşik Kimlik Doğrulamasını Kullanma bölümüne bakın.server=Server;database=Database;Authentication=ActiveDirectoryIntegrated;Encrypt=yes;(Yalnızca Windows sürücüsü.) Microsoft Entra Interactive Authentication, bağlantıyı ayarlamak için Microsoft Entra çok faktörlü kimlik doğrulama teknolojisini kullanır. Bu modda, oturum açma kimliği sağlanarak bir Azure Kimlik Doğrulaması iletişim kutusu tetiklenerek kullanıcının bağlantıyı tamamlamak için ek doğrulama girişi yapmasına izin verilir. Kullanıcı adı bağlantı dizesinde geçirilir.
server=Server;database=Database;UID=UserName;Authentication=ActiveDirectoryInteractive;Encrypt=yes;
Microsoft Entra yönetilen kimlik kimlik doğrulaması, sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği kullanabilir. Kullanıcı tarafından atanan bir kimlik için UID'yi Azure App Service veya Azure Container Instance için kimliğin istemci kimliğine ayarlayın; aksi takdirde nesne kimliğini kullanın. Sistem tarafından atanan kimlik için UID gerekli değildir.
Sistem tarafından atanan kimlik için:
server=Server;database=Database;Authentication=ActiveDirectoryMsi;Encrypt=yes;Nesne kimliğine eşit kullanıcı tarafından atanan kimlik için
myObjectId:server=Server;database=Database;UID=myObjectId;Authentication=ActiveDirectoryMsi;Encrypt=yes;Microsoft Entra hizmet sorumlusu kimlik doğrulaması
server=Server;database=Database;UID=clientId;PWD=<password>;Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;
Açıklamalar
17.4.2 sürümünden önceki Windows ODBC sürücüsüyle Microsoft Entra seçeneklerini kullanırken, SQL Server için Active Directory Kimlik Doğrulama Kitaplığı'nın yüklendiğinden emin olun. Linux ve macOS sürücülerini kullanırken yüklü olduğundan
libcurlemin olun. Sürücü sürümü 17.2 ve üzeri için, diğer kimlik doğrulama yöntemleri veya ODBC işlemleri için gerekli olmadığından bu açık bir bağımlılık değildir.Microsoft Entra yapılandırması koşullu erişim ilkeleri içeriyorsa ve istemci Windows 10 veya Server 2016 veya üzeriyse, Tümleşik veya kullanıcı adı/parola aracılığıyla kimlik doğrulaması başarısız olabilir. Koşullu erişim ilkeleri, Windows için 17.6 veya sonraki bir sürümde desteklenen Web Hesabı Yöneticisi'nin (WAM) kullanılmasını gerektirir. WAM'yi kullanmak için, genel, kullanıcı DSN veya sistem DSN kapsamlı yapılandırmalar için sırasıyla
ADALuseWAM,HKLM\Software\ODBC\ODBCINST.INI\ODBC Driver 17 for SQL ServerveyaHKCU\Software\ODBC\ODBC.INI\<your-user-DSN-name>adlı yeni bir dize değeri oluşturun ve bunu 1 değerine ayarlayın. WAM ile kimlik doğrulamanın,runasfarklı bir kullanıcı olarak uygulamayı çalıştırmayı desteklemediğini unutmayın. Koşullu Erişim ilkeleri gerektiren senaryolar Linux veya macOS için desteklenmez.SQL Server hesabı kullanıcı adı ve parolası kullanarak bağlanmak için artık yeni
SqlPasswordseçeneği kullanabilirsiniz. Bu seçenek daha güvenli bağlantı varsayılanlarını etkinleştirdiğinden, özellikle Azure SQL için önerilir.Microsoft Entra hesabı kullanıcı adı ve parolası kullanarak bağlanmak için, bağlantı dizesinde
Authentication=ActiveDirectoryPasswordöğesini veUIDilePWDanahtar sözcüklerinde sırasıyla kullanıcı adı ve parolayı belirtin.Uyarı
ActiveDirectoryPassword kullanım dışı bırakıldı. Daha fazla bilgi için bkz. ActiveDirectoryPassword kullanım dışı bırakıldı.
Windows Tümleşik veya Microsoft Entra Tümleşik (Windows ve Linux/macOS 17.6+, yalnızca sürücü) kimlik doğrulamasını kullanarak bağlanmak için
Authentication=ActiveDirectoryIntegratedbağlantı dizesinde belirtiniz. Sürücü otomatik olarak doğru kimlik doğrulama modunu seçer. 17.7 veya öncekiUIDsürücü sürümleri içinPWDbelirtilmemelidir. Sürücü sürümü 17.8 itibarıyla,UIDvePWDyoksayılmaktadır.Microsoft Entra etkileşimli kimlik doğrulamasını kullanarak bağlanmak için (yalnızca Windows sürücüsü)
UIDbelirtilmelidir. 17.7 ve öncekiPWDsürücü sürümleri için belirtilmemelidir. Sürücü sürümü 17.8'den itibaren,PWDyoksayılmaktadır.Sürüm 18.1'den başlayarak,
Trusted_Connection=Yesartık varsayılan olarak Microsoft Entra Id federasyon kimlik doğrulamasını kullanmaz ve bunun yerine SSPI tümleşik kullanır. Microsoft Entra ID'yi bu seçenek için kullanmak amacıylaTrustedConnection_UseAAD=Yesyapılandırılmalıdır.SQL Server örneğinde Microsoft Entra kimlik doğrulaması ve Zorlamalı Şifreleme etkinleştirildiğinde ODBC sürücüsü sürüm 17.7 ve daha düşük sürümlerde bağlantı zaman aşımıyla ilgili bilinen bir sorun vardır. SQL Server hata günlüğü şu hata iletilerini içerebilir: "Hata: 33155, Önem Derecesi: 20, Durum: 1. Sunucu Federasyon Kimlik Doğrulaması belirtecini beklerken bir bağlantı kesme olayı oluştu. Bunun nedeni istemci kapatma veya sunucu zaman aşımı süresinin dolması olabilir." Always On kullanılabilirlik grupları veya yük devretme kümesi örnekleri gibi yüksek kullanılabilirlik çözümleri kullanıyorsanız, SQL Server için iç küme iletişimi bu davranıştan etkilenebilir ve bu da kaynak kullanılabilirliğini etkileyebilir. Küme günlüğünde şu hata iletilerini görebilirsiniz:
[hadrag] Connect to SQL Server ...ODBC Error: [HY000] [Microsoft][ODBC Driver 17 for SQL Server]An unknown error has occurred. Detailed error information is not available. (0). ODBC sürücüsü sürüm 17.10 ve üzeri bu sorunu düzeltir ve SQL Server 2022 GDR KB5021522 /CU1 KB5022375, bu düzeltmeyi içeren en son sürücü SQL Server yüklemesi ile yüklenir. ODBC Veri Kaynağı Yöneticisi'ne başvurarak hangi ODBC sürücüsünü yüklediğinizi doğrulayabilirsiniz.ODBC sürücüsü sürüm 18.3'den başlayarak Yönetilen Kimlik (ActiveDirectoryMSI) kimlik doğrulaması Azure Arc ve Azure Cloud Shell'de desteklenir.
Erişim belirteci ile kimlik doğrulaması
SQL_COPT_SS_ACCESS_TOKEN Bağlantı öncesi özniteliği, kullanıcı adı ve parola yerine kimlik doğrulaması için Microsoft Entra Id'den alınan bir erişim belirtecinin kullanılmasına izin verir ve ayrıca sürücü tarafından yapılan anlaşma ve erişim belirtecinin alınması adımlarını atlar. Erişim belirteci kullanmak için bağlantı özniteliğini bir SQL_COPT_SS_ACCESS_TOKEN yapı işaretçisi olarak ayarlayınACCESSTOKEN:
typedef struct AccessToken
{
DWORD dataSize;
BYTE data[];
} ACCESSTOKEN;
, ACCESSTOKEN 4 bayt uzunluğundan ve ardından erişim belirtecini oluşturan opak verilerin uzunluk baytlarından oluşan değişken uzunlukta bir yapıdır. SQL Server'ın erişim belirteçlerini işleme biçimi nedeniyle, OAuth 2.0 JSON yanıtı aracılığıyla elde edilen bir yanıtın genişletilmesi gerekir; böylece her bayt, yalnızca ASCII karakterleri içeren UCS-2 dizesine benzer şekilde sıfır doldurma baytını izler. Ancak, belirteç opak bir değerdir ve belirtilen uzunluk bayt olarak verilmiş olup null sonlandırıcıyı içermemesi gerekir. Önemli uzunluk ve biçim kısıtlamaları nedeniyle, bu kimlik doğrulama yöntemi yalnızca bağlantı özniteliği aracılığıyla SQL_COPT_SS_ACCESS_TOKEN program aracılığıyla kullanılabilir. Karşılık gelen DSN veya bağlantı dizesi anahtar sözcüğü yoktur. Bağlantı dizesi , , UIDPWDveya Authentication anahtar sözcükleri içermemelidirTrusted_Connection.
Uyarı
ODBC Sürücüsü sürüm 13.1 yalnızca Windows'da bu kimlik doğrulamasını destekler. Sonraki sürümler tüm platformlarda bu kimlik doğrulamayı destekler.
Microsoft Entra kimlik doğrulaması örnek kodu
Aşağıdaki örnekte bağlantı anahtar sözcükleriyle Microsoft Entra Id kullanarak SQL Server'a bağlanmak için gereken kod gösterilmektedir. Uygulama kodunun kendisini değiştirmeniz gerekmez. Bağlantı dizesi veya kullanılıyorsa DSN, kimlik doğrulaması için Microsoft Entra Id'yi kullanmak için gereken tek değişikliktir:
...
SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};UID=myuser;PWD=<password>;Authentication=ActiveDirectoryInteractive;Encrypt=yes;"
...
SQLDriverConnect(hDbc, NULL, connString, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
...
Aşağıdaki örnekte, Microsoft Entra erişim belirteci kimlik doğrulamasını kullanarak SQL Server'a bağlanmak için gereken kod gösterilmektedir. Bu durumda, erişim belirtecini işlemek ve ilişkili bağlantı özniteliğini ayarlamak için uygulama kodunun değiştirilmesi gerekir.
SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};Encrypt=yes;"
SQLCHAR accessToken[] = "eyJ0eXAiOi..."; // In the format extracted from an OAuth JSON response
...
DWORD dataSize = 2 * strlen(accessToken);
ACCESSTOKEN *pAccToken = malloc(sizeof(ACCESSTOKEN) + dataSize);
pAccToken->dataSize = dataSize;
// Expand access token with padding bytes
for(int i = 0, j = 0; i < dataSize; i += 2, j++) {
pAccToken->data[i] = accessToken[j];
pAccToken->data[i+1] = 0;
}
...
SQLSetConnectAttr(hDbc, SQL_COPT_SS_ACCESS_TOKEN, (SQLPOINTER)pAccToken, SQL_IS_POINTER);
SQLDriverConnect(hDbc, NULL, connString, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
...
free(pAccToken);
Aşağıdaki örnek bağlantı dizesi, Microsoft Entra etkileşimli kimlik doğrulaması ile kullanım içindir. Parola Azure Kimlik Doğrulaması ekranında girileceğinden PWD alanı içermez.
SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};UID=myuser;Authentication=ActiveDirectoryInteractive;Encrypt=yes;"
Aşağıdaki örnek bağlantı dizesi, Microsoft Entra yönetilen kimlik kimlik doğrulaması ile kullanım içindir. UID, kullanıcı tarafından atanan bir kimlik kullanılırken kullanıcı kimliğinin nesne/istemci kimliğine ayarlanır.
// For system-assigned identity,
SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};Authentication=ActiveDirectoryMsi;Encrypt=yes;"
...
// For user-assigned identity with object ID equals to myObjectId
SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};UID=myObjectId;Authentication=ActiveDirectoryMsi;Encrypt=yes;"
Linux/macOS'ta ADFS Federasyon Hesaplarını kullanma konusunda dikkat edilmesi gerekenler
Sürüm 17.6'dan başlayarak, Linux ve macOS sürücüleri kullanıcı adı/parola () veya Kerberos (ActiveDirectoryPassword) kullanarak ActiveDirectoryIntegrated kullanarak kimlik doğrulamasını destekler. Tümleşik mod kullanılırken platforma bağlı bazı sınırlamalar vardır.
UPN soneki Kerberos alanından farklı olan, yani alternatif bir UPN soneki kullanımda olan bir kullanıcıyla kimlik doğrulaması yaparken, Kerberos biletlerini alırken Kurumsal Sorumlu seçeneğini (ile -Eseçeneğini kullanın kinit ve biçiminde user@federated-domainasıl adı sağlayın) kullanmak gerekir. Bu şekilde, sürücü hem federasyon etki alanını hem de Kerberos alanını doğru bir şekilde belirleyebilir.
Uygun bir Kerberos biletinin mevcut olduğunu, klist komutunun çıktısını inceleyerek doğrulayabilirsiniz. Federasyon etki alanı Kerberos bölgesi ve UPN soneki ile aynıysa, asıl ad user@realm biçimindedir. Farklıysa, asıl ad biçiminde user@federated-domain@realmolmalıdır.
Linux işletim sistemi
SUSE 11'de, varsayılan Kerberos kütüphane sürümü 1.6.x, alternatif UPN soneklerini kullanmak için gereken Enterprise Principal seçeneğini desteklemez. Microsoft Entra entegre kimlik doğrulaması ile alternatif UPN son eklerini kullanmak için Kerberos kitaplığını 1.7 veya daha yeni bir sürüme yükseltin.
Alpine Linux'ta varsayılan değer libcurl , Microsoft Entra tümleşik kimlik doğrulaması için gereken SPNEGO/Kerberos kimlik doğrulamasını desteklemez.
macOS
Sistem Kerberos kitaplığı kinit , Kuruluş Sorumlusu'nu --enterprise seçeneğiyle destekler, ancak ayrıca alternatif UPN son eklerinin kullanılmasını engelleyen kurallılaştırmayı örtük olarak yapar. Microsoft Entra tümleşik kimlik doğrulaması ile alternatif UPN soneklerini kullanmak için, brew install krb5 aracılığıyla daha yeni bir Kerberos kitaplığı yükleyin ve yukarıda açıklandığı gibi kinit seçeneğiyle -E kullanın.