Databricks JDBC Sürücüsü için kimlik doğrulama ayarları
Bu makalede, Databricks JDBC Sürücüsü için Azure Databricks kimlik doğrulama ayarlarının nasıl yapılandırıldığı açıklanır.
Databricks JDBC Sürücüsü için Azure Databricks bağlantısı yapılandırmak için işlem kaynağı ayarlarınızı, sürücü özellik ayarlarınızı ve aşağıdaki kimlik doğrulama ayarlarını bir JDBC bağlantı URL'sinde veya JDBC bağlantı özellikleri programlı koleksiyonunda birleştirmeniz gerekir.
JDBC bağlantı URL'leri aşağıdaki biçimi kullanır:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
- ve
<server-hostname>
değerlerini almak için<http-path>
bkz. Databricks JDBC Sürücüsü için işlem ayarları. - Aşağıdaki bölümlerde listelenen bağlantı özelliklerinin her biri için gerektiği gibi değiştirin
<setting>=<value>
. - Ayrıca özel veya gelişmiş sürücü özelliği ayarları da ekleyebilirsiniz.
JDBC bağlantı özellikleri programlı koleksiyonları, aşağıdaki örnek gibi Java kodunda kullanılabilir:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("com.databricks.client.jdbc.Driver");
String url = "jdbc:databricks://" + System.getenv("DATABRICKS_SERVER_HOSTNAME") + ":443";
Properties p = new java.util.Properties();
p.put("httpPath", System.getenv("DATABRICKS_HTTP_PATH"));
p.put("<setting1>", "<value1");
p.put("<setting2>", "<value2");
p.put("<settingN>", "<valueN");
try (Connection conn = DriverManager.getConnection(url, p)) {
Statement stmt = conn.createStatement();
try (ResultSet rs = stmt.executeQuery("<query>")) {
ResultSetMetaData md = rs.getMetaData();
String[] columns = new String[md.getColumnCount()];
for (int i = 0; i < columns.length; i++) {
columns[i] = md.getColumnName(i + 1);
}
while (rs.next()) {
System.out.print("Row " + rs.getRow() + "=[");
for (int i = 0; i < columns.length; i++) {
if (i != 0) {
System.out.print(", ");
}
System.out.print(columns[i] + "='" + rs.getObject(i + 1) + "'");
}
System.out.println(")]");
}
}
}
System.exit(0);
}
}
-
DATABRICKS_SERVER_HOSTNAME
veDATABRICKS_HTTP_PATH
ortam değerlerini sırasıyla hedef Azure Databricks işlem kaynağının Sunucu Ana Bilgisayar Adı ve HTTP Yolu değerlerine ayarlayın. Bu değerleri almak için bkz . Databricks JDBC Sürücüsü için işlem ayarları. Ortam değişkenlerini ayarlamak için işletim sisteminizin belgelerine bakın. - aşağıdaki bölümlerde listelenen bağlantı özelliklerinin her biri için ve
<setting>
değerini gerektiği gibi değiştirin<value>
. - Ayrıca, genellikle ek ve
<setting>
çiftler olarak özel veya gelişmiş<value>
da ekleyebilirsiniz. - Bu örnekte değerini bir SQL
<query>
sorgu dizesiyle değiştirinSELECT
.
Bağlantı URL'si veya bağlantı özellikleri koleksiyonu kullanmanız, hedef uygulamanızın, aracının, istemcinizin, SDK'nızın veya API'nizin gereksinimlerine bağlıdır. Desteklenen her Azure Databricks kimlik doğrulama türü için bu makalede JDBC bağlantı URL'leri ve programlı JDBC bağlantı özellikleri koleksiyonları örnekleri verilmiştir.
Databricks JDBC Sürücüsü aşağıdaki Azure Databricks kimlik doğrulama türlerini destekler:
- Microsoft Entra Id belirteci
- OAuth 2.0 belirteçleri
- OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması
- OAuth makineden makineye (M2M) kimlik doğrulaması
Microsoft Entra Id belirteci
ODBC ve JDBC sürücüleri 2.6.15 ve üzeri bir Azure Databricks kullanıcısı veya Microsoft Entra ID hizmet sorumlusu için Microsoft Entra Id belirteçlerini destekler.
Microsoft Entra ID erişim belirteci oluşturmak için aşağıdakileri yapın:
- Azure Databricks kullanıcısı için Azure CLI'yı kullanabilirsiniz. Kullanıcılar için Microsoft Entra ID belirteçlerini Azure CLIkullanarak alma hakkında bilgi için bkz.
. - Microsoft Entra ID hizmet sorumlusu için, Azure CLI ile Microsoft Entra ID erişim belirteci alma bölümüne bakın. Microsoft Entra Id yönetilen hizmet sorumlusu oluşturmak için bkz . Hizmet sorumlularını yönetme.
Microsoft Entra Id erişim belirteçlerinin varsayılan ömrü yaklaşık 1 saattir. Mevcut bir oturum için erişim belirteci, bağlantıyı kesmeden Microsoft Entra ID erişim belirtecini yenileiçinde kodu çalıştırarak programatik olarak yenilenebilir. Belirteci yenileme hakkında yönergeler için Databricks JDBC Sürücü Kılavuzu'ndaki Configuring Authentication > Using OAuth 2.0
bölüme bakın.
Microsoft Entra Id belirtecini kullanarak kimlik doğrulaması yapmak için aşağıdaki yapılandırmayı ayarlayın.
Eklenmiş genel yapılandırma özelliklerine ve hassas kimlik bilgileri özelliklerine sahip bir JDBC bağlantı URL'si için:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
JDBC bağlantı URL'si dışında ayarlanmış genel yapılandırma özellikleri ve hassas kimlik bilgileri özelliklerine sahip Java kodu için:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<microsoft-entra-id-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Önceki kod parçacığını kendi gereksinimlerinize uyarlayabileceğiniz eksiksiz bir Java kod örneği için bu makalenin başındaki kod örneğine bakın.
- Önceki URL veya Java kodunda değerini Microsoft Entra ID belirteci ile değiştirin
<microsoft-entra-id-token>
. - ve
<server-hostname>
değerlerini almak için<http-path>
bkz. Databricks JDBC Sürücüsü için işlem ayarları.
Daha fazla bilgi için Databricks JDBC Sürücü Kılavuzu'ndaki Token Pass-through
bölüme bakın.
OAuth 2.0 belirteçleri
JDBC sürücüsü 2.6.36 ve üzeri bir Microsoft Entra ID hizmet sorumlusu için OAuth 2.0 belirtecini destekler. Bu, OAuth 2.0 belirteci geçiş kimlik doğrulaması olarak da bilinir.
- Microsoft Entra ID hizmet sorumlusu için belirteç geçişi kimlik doğrulaması yapmak amacıyla OAuth 2.0 belirteci oluşturmak için, OAuth hizmet sorumlusu kimlik doğrulaması için el ile erişim belirteçleri oluşturma ve kullanmabölümüne bakın. Hizmet sorumlusunun OAuth
access_token
değerini not edin. - Microsoft Entra Id yönetilen hizmet sorumlusu oluşturmak için bkz . Hizmet sorumlularını yönetme.
Önemli
JDBC sürücüsü 2.6.36 ve üzeri, OAuth 2.0 belirteçleri oluşturmak için Azure Databricks OAuth gizli dizilerinin kullanılmasını destekler. Microsoft Entra Id gizli dizileri desteklenmez.
OAuth 2.0 belirteçlerinin varsayılan ömrü 1 saattir. Yeni bir OAuth 2.0 belirteci oluşturmak için bu işlemi yineleyin.
OAuth 2.0 belirteci geçiş kimlik doğrulamasını kullanarak kimlik doğrulaması yapmak için aşağıdaki yapılandırmayı ayarlayın.
Eklenmiş genel yapılandırma özelliklerine ve hassas kimlik bilgileri özelliklerine sahip bir JDBC bağlantı URL'si için:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
JDBC bağlantı URL'si dışında ayarlanmış genel yapılandırma özellikleri ve hassas kimlik bilgileri özelliklerine sahip Java kodu için:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Önceki kod parçacığını kendi gereksinimlerinize uyarlayabileceğiniz eksiksiz bir Java kod örneği için bu makalenin başındaki kod örneğine bakın.
- Yukarıdaki URL veya Java kodunda değerini Azure Databricks OAuth belirteci ile değiştirin
<oauth-token>
. (Microsoft Entra Id belirteçleri, OAuth 2.0 belirteci doğrudan kimlik doğrulaması için desteklenmez.) - ve
<server-hostname>
değerlerini almak için<http-path>
bkz. Databricks JDBC Sürücüsü için işlem ayarları.
Daha fazla bilgi için Databricks JDBC Sürücü Kılavuzu'ndaki Token Pass-through
bölüme bakın.
OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması
JDBC sürücüsü 2.6.36 ve üzeri bir Azure Databricks kullanıcısı için OAuth kullanıcıdan makineye (U2M) kimlik doğrulamasını destekler. Bu, OAuth 2.0 tarayıcı tabanlı kimlik doğrulaması olarak da bilinir.
OAuth U2M veya OAuth 2.0 tarayıcı tabanlı kimlik doğrulamasının önkoşulları yoktur. OAuth 2.0 belirteçlerinin varsayılan ömrü 1 saattir. OAuth U2M veya OAuth 2.0 tarayıcı tabanlı kimlik doğrulaması, süresi dolan OAuth 2.0 belirteçlerini sizin için otomatik olarak yenilemelidir.
Not
OAuth U2M veya OAuth 2.0 tarayıcı tabanlı kimlik doğrulaması yalnızca yerel olarak çalışan uygulamalarla çalışır. Sunucu tabanlı veya bulut tabanlı uygulamalarla çalışmaz.
OAuth kullanıcıdan makineye (U2M) veya OAuth 2.0 tarayıcı tabanlı kimlik doğrulamasını kullanarak kimlik doğrulaması yapmak için aşağıdaki yapılandırmayı ayarlayın.
Eklenmiş genel yapılandırma özelliklerine ve hassas kimlik bilgileri özelliklerine sahip bir JDBC bağlantı URL'si için:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
JDBC bağlantı URL'si dışında ayarlanmış genel yapılandırma özellikleri ve hassas kimlik bilgileri özelliklerine sahip Java kodu için:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2")
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Önceki kod parçacığını kendi gereksinimlerinize uyarlayabileceğiniz eksiksiz bir Java kod örneği için bu makalenin başındaki kod örneğine bakın.
- Önceki URL'de veya Java kodunda değerini, seçtiğiniz bir parolayla değiştirin
<passphrase>
. Sürücü, yenileme belirteci şifrelemesi için bu anahtarı kullanır. - ve
<server-hostname>
değerlerini almak için<http-path>
bkz. Databricks JDBC Sürücüsü için işlem ayarları.
Daha fazla bilgi için Databricks JDBC Sürücü Kılavuzu'ndaki Using Browser Based Authentication
bölüme bakın.
OAuth makineden makineye (M2M) kimlik doğrulaması
JDBC sürücüsü 2.6.36 ve üzeri bir Microsoft Entra ID hizmet sorumlusu için OAuth makineden makineye (M2M) kimlik doğrulamasını destekler. Bu, OAuth 2.0 istemci kimlik bilgileri kimlik doğrulaması olarak da bilinir.
Not
JDBC 2.6.40.1071, özel bağlantı çalışma alanları için M2M kullanılarak bağlanmanın desteklenmediği eski sürümlerdeki sorunu giderir.
OAuth M2M veya OAuth 2.0 istemci kimlik bilgileri kimlik doğrulamasını yapılandırmak için aşağıdakileri yapın:
Microsoft Entra Id yönetilen hizmet sorumlusu oluşturun ve ardından bunu Azure Databricks hesaplarına ve çalışma alanlarına atayın. Bunu yapmak için bkz. Hizmet sorumlularını yönetme.
Önemli
JDBC sürücüsü 2.6.36 ve üzeri, OAuth M2M veya OAuth 2.0 istemci kimlik bilgileri kimlik doğrulaması için Azure Databricks OAuth gizli dizilerini destekler. Microsoft Entra Id gizli dizileri desteklenmez.
Hizmet sorumlusu için bir Azure Databricks OAuth gizli dizisi oluşturun. Bunu yapmak için bkz. OAuth hizmet sorumlusu kimliği doğrulaması için manuel olarak erişim belirteçleri oluşturma ve kullanma.
Hizmet sorumlusuna kümenize veya ambarınıza erişim verin. Bkz. İşlem izinleri veya SQL ambarı yönetme.
OAuth makineden makineye (M2M) veya OAuth 2.0 istemci kimlik bilgileri kimlik doğrulaması kullanarak kimlik doğrulaması yapmak için aşağıdaki yapılandırmayı ayarlayın.
Eklenmiş genel yapılandırma özelliklerine ve hassas kimlik bilgileri özelliklerine sahip bir JDBC bağlantı URL'si için:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
JDBC bağlantı URL'si dışında ayarlanmış genel yapılandırma özellikleri ve hassas kimlik bilgileri özelliklerine sahip Java kodu için:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Önceki kod parçacığını kendi gereksinimlerinize uyarlayabileceğiniz eksiksiz bir Java kod örneği için bu makalenin başındaki kod örneğine bakın.
- Yukarıdaki URL veya Java kodunda aşağıdaki yer tutucuları değiştirin:
- değerini hizmet sorumlusunun
<service-principal-application-id>
değeriyle değiştirin. - değerini hizmet sorumlusunun Azure Databricks OAuth gizli dizisiyle değiştirin
<service-principal-oauth-secret>
. (Microsoft Entra ID sırları, OAuth M2M veya OAuth 2.0 istemci kimlik bilgileri doğrulaması için desteklenmez.) - ve
<server-hostname>
değerlerini almak için<http-path>
bkz. Databricks JDBC Sürücüsü için işlem ayarları.
- değerini hizmet sorumlusunun
Daha fazla bilgi için Databricks JDBC Sürücü Kılavuzu'ndaki Using M2M Based Authentication
bölüme bakın.