Aracılığıyla paylaş


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 ve DATABRICKS_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

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.0bö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-throughbö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.

Ö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-throughbö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 Authenticationbö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:

  1. 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.

  2. 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.

  3. 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ı.

Daha fazla bilgi için Databricks JDBC Sürücü Kılavuzu'ndaki Using M2M Based Authenticationbölüme bakın.