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:

Osobní přístupový token Azure Databricks

Pokud chcete vytvořit osobní přístupový token Azure Databricks, postupujte takto:

  1. V pracovním prostoru Azure Databricks klikněte na své uživatelské jméno Azure Databricks v horním panelu a pak v rozevíracím seznamu vyberte Nastavení .
  2. Klikněte na Vývojář.
  3. Vedle přístupových tokenů klikněte na Spravovat.
  4. Klikněte na Vygenerovat nový token.
  5. (Volitelné) Zadejte komentář, který vám pomůže identifikovat tento token v budoucnu a změnit výchozí životnost tokenu na 90 dnů. Pokud chcete vytvořit token bez životnosti (nedoporučuje se), nechte pole Životnost (dny) prázdné (prázdné).
  6. Klikněte na Vygenerovat.
  7. Zkopírujte zobrazený token do zabezpečeného umístění a klikněte na tlačítko Hotovo.

Poznámka:

Nezapomeňte zkopírovaný token uložit do zabezpečeného umístění. Nesdílejte svůj zkopírovaný token s ostatními. Pokud ztratíte zkopírovaný token, nemůžete tento úplně stejný token znovu vygenerovat. Místo toho musíte tento postup zopakovat, abyste vytvořili nový token. Pokud ztratíte zkopírovaný token nebo se domníváte, že došlo k ohrožení zabezpečení tokenu, databricks důrazně doporučuje tento token okamžitě odstranit z pracovního prostoru kliknutím na ikonu koše (Odvolat) vedle tokenu na stránce Přístupové tokeny .

Pokud v pracovním prostoru nemůžete vytvářet nebo používat tokeny, může to být proto, že správce pracovního prostoru zakázal tokeny nebo vám neudělil oprávnění k vytváření nebo používání tokenů. Obraťte se na správce pracovního prostoru nebo následující:

Pokud chcete provést ověření pomocí tokenu pat pro Azure Databricks, 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=3;UID=token;PWD=<personal-access-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", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-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 <personal-access-token> osobní přístupový token Databricks pro uživatele pracovního prostoru.
  • 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.

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.

  • Pokud chcete vytvořit token OAuth 2.0 pro předávací ověřování tokenu pro instanční objekt Microsoft Entra ID, přečtěte si téma Ruční generování a použití přístupových tokenů pro ověřování OAuth M2M. Poznamenejte si hodnotu OAuth access_token instančního objektu.

  • Informace o vytvoření spravovaného instančního objektu Microsoft Entra ID najdete v tématu Správa instančních objektů.

    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 se aktuálně nepřipojuje pomocí M2M pro pracovní prostory privátního propojení.

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.