Sdílet prostřednictvím


Nastavení ověřování pro ovladač Databricks JDBC

Tento článek popisuje, jak nakonfigurovat nastavení ověřování Azure Databricks pro ovladač Databricks JDBC.

Pokud chcete nakonfigurovat připojení Azure Databricks pro ovladač Databricks JDBC, musíte zkombinovat nastavení výpočetních prostředků, nastavení možností ovladače a následující nastavení ověřování do adresy URL připojení JDBC nebo programové kolekce vlastností připojení JDBC.

Adresy URL připojení JDBC používají následující formát:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
  • Pokud chcete získat hodnoty pro <server-hostname> a <http-path>, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.
  • Podle potřeby nahraďte <setting>=<value> každou z vlastností připojení, jak je uvedeno v následujících částech.
  • Můžete také přidat speciální nebo pokročilá nastavení možností ovladače.

Programové kolekce vlastností připojení JDBC lze použít v kódu Jazyka Java, například v následujícím příkladu:

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 Nastavte hodnoty prostředí DATABRICKS_HTTP_PATH na cílový název hostitele serveru a cestu HTTP cílového prostředku Azure Databricks. Pokud chcete získat tyto hodnoty, přečtěte si informace o nastavení výpočetních prostředků pro ovladač Databricks JDBC. Pokud chcete nastavit proměnné prostředí, přečtěte si dokumentaci k vašemu operačnímu systému.
  • Nahraďte <setting> a <value> podle potřeby pro každou z vlastností připojení, jak je uvedeno v následujících částech.
  • Můžete také přidat speciální nebo pokročilá nastavení možností ovladače, obvykle jako další <setting> a <value> páry.
  • V tomto příkladu nahraďte <query> řetězcem dotazu SQL SELECT .

Bez ohledu na to, jestli použijete adresu URL připojení nebo kolekci vlastností připojení, budou záviset na požadavcích cílové aplikace, nástroje, klienta, sady SDK nebo rozhraní API. Příklady adres URL připojení JDBC a programových kolekcí vlastností připojení JDBC najdete v tomto článku pro každý podporovaný typ ověřování Azure Databricks.

Ovladač Databricks JDBC podporuje následující typy ověřování Azure Databricks:

Token ID Microsoft Entra

Ovladače ODBC a JDBC 2.6.15 a vyšší podporují tokeny MICROSOFT Entra ID pro uživatele Azure Databricks nebo instanční objekt Microsoft Entra ID.

Pokud chcete vytvořit přístupový token Microsoft Entra ID, postupujte takto:

Přístupové tokeny Microsoft Entra ID mají výchozí životnost přibližně 1 hodinu. Přístupový token lze aktualizovat programově pro existující relaci bez přerušení připojení spuštěním kódu v aktualizaci přístupového tokenu Microsoft Entra ID. Pokyny k aktualizaci tokenu najdete v části Configuring Authentication > Using OAuth 2.0 průvodce ovladačem Databricks JDBC.

Pokud chcete provést ověření pomocí tokenu Microsoft Entra ID, nastavte následující konfiguraci.

Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>

Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:

// ...
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);
// ...
  • Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
  • V předchozí adrese URL nebo kódu Java nahraďte <microsoft-entra-id-token> tokenem Microsoft Entra ID.
  • Pokud chcete získat hodnoty pro <server-hostname> a <http-path>, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.

Další informace najdete Token Pass-through v části Průvodce ovladačem Databricks JDBC.

Tokeny OAuth 2.0

Ovladač JDBC 2.6.36 a vyšší podporuje token OAuth 2.0 pro instanční objekt Microsoft Entra ID. Označuje se také jako předávací ověřování tokenu OAuth 2.0.

Důležité

Ovladač JDBC 2.6.36 a vyšší podporuje použití tajných kódů OAuth Azure Databricks K vytvoření tokenů OAuth 2.0. Tajné kódy MICROSOFT Entra ID nejsou podporovány.

Tokeny OAuth 2.0 mají výchozí životnost 1 hodinu. Pokud chcete vygenerovat nový token OAuth 2.0, opakujte tento proces.

Pokud se chcete ověřit pomocí předávacího ověřování tokenu OAuth 2.0, nastavte následující konfiguraci.

Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>

Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:

// ...
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);
// ...
  • Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
  • V předchozí adrese URL nebo kódu Java nahraďte <oauth-token> tokenem Azure Databricks OAuth. (Předávací ověřování pomocí tokenu OAuth 2.0 nepodporuje tokeny Microsoft Entra ID.)
  • Pokud chcete získat hodnoty pro <server-hostname> a <http-path>, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.

Další informace najdete Token Pass-through v části Průvodce ovladačem Databricks JDBC.

Ověřování uživatele OAuth na počítač (U2M)

Ovladač JDBC 2.6.36 a novější podporuje ověřování uživatele AAuth (U2M) pro uživatele Azure Databricks. Označuje se také jako ověřování založené na prohlížeči OAuth 2.0.

Ověřování založené na prohlížeči OAuth U2M nebo OAuth 2.0 nemá žádné požadavky. Tokeny OAuth 2.0 mají výchozí životnost 1 hodinu. Ověřování založené na prohlížeči OAuth U2M nebo OAuth 2.0 by mělo automaticky aktualizovat tokeny OAuth 2.0.

Poznámka:

Ověřování založené na prohlížeči OAuth U2M nebo OAuth 2.0 funguje jenom s aplikacemi, které běží místně. Nefunguje s serverovými nebo cloudovými aplikacemi.

Pokud se chcete ověřit pomocí ověřování založeného na uživateli OAuth na počítači (U2M) nebo OAuth 2.0 v prohlížeči, nastavte následující konfiguraci.

Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0

Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:

// ...
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);
// ...
  • Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
  • V předchozí adrese URL nebo kódu Java nahraďte <passphrase> heslem podle vašeho výběru. Ovladač používá tento klíč k šifrování obnovovacího tokenu.
  • Pokud chcete získat hodnoty pro <server-hostname> a <http-path>, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.

Další informace najdete Using Browser Based Authentication v části Průvodce ovladačem Databricks JDBC.

Ověřování M2M (machine-to-machine) OAuth

Ovladač JDBC 2.6.36 a vyšší podporuje ověřování OAuth machine-to-machine (M2M) pro instanční objekt Microsoft Entra ID. To se také označuje jako ověřování přihlašovacích údajů klienta OAuth 2.0.

Poznámka:

JDBC 2.6.40.1071 řeší problém ve starších verzích, které se pro pracovní prostory privátních propojení připojují pomocí M2M.

Pokud chcete nakonfigurovat ověřování přihlašovacích údajů klienta OAuth M2M nebo OAuth 2.0, postupujte takto:

  1. Vytvořte spravovaný instanční objekt Microsoft Entra ID a pak ho přiřaďte k účtům a pracovním prostorům Azure Databricks. Postup najdete v tématu Správa instančních objektů.

    Důležité

    Ovladač JDBC 2.6.36 a novější podporuje tajné kódy OAuth Azure Databricks pro ověřování přihlašovacích údajů klienta OAuth M2M nebo OAuth 2.0. Tajné kódy MICROSOFT Entra ID nejsou podporovány.

  2. Vytvořte tajný klíč Azure Databricks OAuth pro instanční objekt. Postup najdete v tématu Ruční generování a používání přístupových tokenů pro ověřování OAuth M2M.

  3. Udělte instančnímu objektu přístup ke clusteru nebo skladu. Přečtěte si informace o výpočetních oprávněních nebo správě SLUŽBY SQL Warehouse.

Pokud se chcete ověřit pomocí ověřování pomocí klienta OAuth machine-to-machine (M2M) nebo ověřování pomocí přihlašovacích údajů klienta OAuth 2.0, nastavte následující konfiguraci.

Pro adresu URL připojení JDBC s vloženými obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>

Kód Java s obecnými vlastnostmi konfigurace a citlivými vlastnostmi přihlašovacích údajů nastavenými mimo adresu URL připojení JDBC:

// ...
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);
// ...
  • Kompletní příklad kódu v Javě, který můžete přizpůsobit předchozímu fragmentu kódu podle vlastních potřeb, najdete v příkladu kódu na začátku tohoto článku.
  • V předchozí adrese URL nebo kódu Java nahraďte následující zástupné symboly:
    • Nahraďte <service-principal-application-id> hodnotou ID aplikace (klienta) instančního objektu.
    • Nahraďte <service-principal-oauth-secret> tajným kódem Azure Databricks OAuth instančního objektu. (Ověřování přihlašovacích údajů klienta OAuth M2M nebo OAuth 2.0 nepodporuje tajné kódy MICROSOFT Entra ID.)
    • Pokud chcete získat hodnoty pro <server-hostname> a <http-path>, přečtěte si téma Nastavení výpočetních prostředků pro ovladač JDBC Databricks.

Další informace najdete Using M2M Based Authentication v části Průvodce ovladačem Databricks JDBC.