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 <http-path>değerlerini almak için <server-hostname> 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 <value> değerini gerektiği gibi değiştirin<setting>.
  • Ayrıca, genellikle ek <setting> ve <value> çiftler olarak özel veya gelişmiş sürücü özelliği ayarları da ekleyebilirsiniz.
  • Bu örnekte değerini bir SQL SELECT sorgu dizesiyle değiştirin<query>.

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:

Azure Databricks kişisel erişim belirteci

Azure Databricks kişisel erişim belirteci oluşturmak için aşağıdakileri yapın:

  1. Azure Databricks çalışma alanınızda üst çubukta Azure Databricks kullanıcı adınıza tıklayın ve açılan listeden Ayarlar'ı seçin.
  2. Geliştirici'ye tıklayın.
  3. Erişim belirteçleri'nin yanındaki Yönet'e tıklayın.
  4. Yeni belirteç oluştur'a tıklayın.
  5. (İsteğe bağlı) Gelecekte bu belirteci tanımlamanıza yardımcı olacak bir açıklama girin ve belirtecin varsayılan 90 günlük ömrünü değiştirin. Yaşam süresi olmayan bir belirteç oluşturmak için (önerilmez), Yaşam Süresi (gün) kutusunu boş (boş) bırakın.
  6. Generate (Oluştur) düğmesine tıklayın.
  7. Görüntülenen belirteci güvenli bir konuma kopyalayın ve bitti'ye tıklayın.

Not

Kopyalanan belirteci güvenli bir konuma kaydettiğinizden emin olun. Kopyalanan belirtecinizi başkalarıyla paylaşmayın. Kopyalanan belirteci kaybederseniz, tam olarak aynı belirteci yeniden oluşturamazsınız. Bunun yerine, yeni bir belirteç oluşturmak için bu yordamı yinelemeniz gerekir. Kopyalanan belirteci kaybederseniz veya belirtecin gizliliğinin ihlal edildiğini düşünüyorsanız Databricks, Erişim belirteçleri sayfasındaki belirtecin yanındaki çöp kutusu (İptal Et) simgesine tıklayarak bu belirteci çalışma alanınızdan hemen silmenizi kesinlikle önerir.

Çalışma alanınızda belirteç oluşturamıyor veya kullanamıyorsanız, bunun nedeni çalışma alanı yöneticinizin belirteçleri devre dışı bırakmış olması veya size belirteç oluşturma veya kullanma izni vermemiş olması olabilir. Çalışma alanı yöneticinize veya aşağıdaki konulara bakın:

Azure Databricks kişisel erişim 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=3;UID=token;PWD=<personal-access-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", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-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 çalışma alanı kullanıcınız için Databricks kişisel erişim belirteci ile değiştirin <personal-access-token> .
  • ve <http-path>değerlerini almak için <server-hostname> bkz. Databricks JDBC Sürücüsü için işlem ayarları.

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. Bkz . Azure CLI kullanarak kullanıcılar için Microsoft Entra ID belirteçlerini alma.
  • Microsoft Entra ID hizmet sorumlusu için bkz . Azure CLI ile Microsoft Entra ID erişim belirteci alma. 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. Erişim belirteci, Microsoft Entra Id erişim belirtecini yenileme bölümünde kodu çalıştırarak bağlantıyı kesmeden mevcut bir oturum için program aracılığıyla yenilenebilir. Belirteci yenileme hakkında yönergeler için Databricks JDBC Sürücü Kılavuzu'ndaki bölüme Configuring Authentication > Using OAuth 2.0 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 <http-path>değerlerini almak için <server-hostname> 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 bölüme bakınToken Pass-through.

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ş kimlik doğrulaması için OAuth 2.0 belirteci oluşturmak için bkz . OAuth M2M kimlik doğrulaması için erişim belirteçlerini el ile oluşturma ve kullanma. 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 <http-path>değerlerini almak için <server-hostname> 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 bölüme bakınToken Pass-through.

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 <http-path>değerlerini almak için <server-hostname> 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 bölüme bakınUsing Browser Based Authentication.

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 M2M kimlik doğrulaması için erişim belirteçlerini el ile 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 Uygulama (istemci) kimliği değeriyle değiştirin<service-principal-application-id>.
    • değerini hizmet sorumlusunun Azure Databricks OAuth gizli dizisiyle değiştirin <service-principal-oauth-secret> . (Microsoft Entra ID gizli dizileri OAuth M2M veya OAuth 2.0 istemci kimlik bilgileri kimlik doğrulaması için desteklenmez.)
    • ve <http-path>değerlerini almak için <server-hostname> 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 bölüme bakınUsing M2M Based Authentication.