Udostępnij za pośrednictwem


Ustawienia uwierzytelniania sterownika JDBC usługi Databricks

W tym artykule opisano sposób konfigurowania ustawień uwierzytelniania usługi Azure Databricks dla sterownika JDBC usługi Databricks.

Aby skonfigurować połączenie usługi Azure Databricks dla sterownika JDBC usługi Databricks, należy połączyć ustawienia zasobów obliczeniowych, wszystkie ustawienia możliwości sterownika i następujące ustawienia uwierzytelniania, w adres URL połączenia JDBC lub programową kolekcję właściwości połączenia JDBC.

Adresy URL połączeń JDBC używają następującego formatu:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
  • Aby uzyskać wartości parametrów <server-hostname> i <http-path>, zobacz Ustawienia obliczeniowe sterownika JDBC usługi Databricks.
  • Zastąp element <setting>=<value> zgodnie z potrzebami dla każdej właściwości połączenia, jak pokazano w poniższych sekcjach.
  • Możesz również dodać specjalne lub zaawansowane ustawienia możliwości sterownika.

Kolekcje programowe właściwości połączenia JDBC mogą być używane w kodzie Języka Java, na przykład w poniższym przykładzie:

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 Ustaw wartości i DATABRICKS_HTTP_PATH na docelowe wartości zasobów obliczeniowych usługi Azure Databricks Server Hostname i HTTP Path, odpowiednio. Aby uzyskać te wartości, zobacz Compute settings for the Databricks JDBC Driver (Ustawienia obliczeniowe sterownika JDBC usługi Databricks). Aby ustawić zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego.
  • Zastąp <setting> wartości i <value> zgodnie z potrzebami dla każdej właściwości połączenia, jak pokazano w poniższych sekcjach.
  • Można również dodać specjalne lub zaawansowane ustawienia możliwości sterownika, zazwyczaj jako dodatkowe <setting> i <value> pary.
  • W tym przykładzie zastąp ciągiem <query> zapytania SQL SELECT .

Niezależnie od tego, czy używasz adresu URL połączenia, czy kolekcji właściwości połączenia, zależy od wymagań aplikacji docelowej, narzędzia, klienta, zestawu SDK lub interfejsu API. Przykłady adresów URL połączeń JDBC i kolekcji programowych właściwości połączenia JDBC znajdują się w tym artykule dla każdego obsługiwanego typu uwierzytelniania usługi Azure Databricks.

Sterownik JDBC usługi Databricks obsługuje następujące typy uwierzytelniania usługi Azure Databricks:

Osobisty token dostępu usługi Azure Databricks

Aby utworzyć osobisty token dostępu usługi Azure Databricks, wykonaj następujące czynności:

  1. W obszarze roboczym usługi Azure Databricks kliknij nazwę użytkownika usługi Azure Databricks na górnym pasku, a następnie wybierz pozycję Ustawienia z listy rozwijanej.
  2. Kliknij pozycję Deweloper.
  3. Obok pozycji Tokeny dostępu kliknij pozycję Zarządzaj.
  4. Kliknij pozycję Generuj nowy token.
  5. (Opcjonalnie) Wprowadź komentarz, który pomaga zidentyfikować ten token w przyszłości i zmienić domyślny okres istnienia tokenu na 90 dni. Aby utworzyć token bez okresu istnienia (niezalecane), pozostaw puste pole Okres istnienia (dni) (puste).
  6. Kliknij pozycję Generate (Generuj).
  7. Skopiuj wyświetlony token do bezpiecznej lokalizacji, a następnie kliknij przycisk Gotowe.

Uwaga

Pamiętaj, aby zapisać skopiowany token w bezpiecznej lokalizacji. Nie udostępniaj skopiowanego tokenu innym osobom. W przypadku utraty skopiowanego tokenu nie można wygenerować tego samego tokenu. Zamiast tego należy powtórzyć tę procedurę, aby utworzyć nowy token. Jeśli utracisz skopiowany token lub uważasz, że token został naruszony, usługa Databricks zdecydowanie zaleca natychmiastowe usunięcie tego tokenu z obszaru roboczego, klikając ikonę kosza (Odwołaj) obok tokenu na stronie Tokeny dostępu.

Jeśli nie możesz utworzyć lub użyć tokenów w obszarze roboczym, może to być spowodowane tym, że administrator obszaru roboczego wyłączył tokeny lub nie udzielił Ci uprawnień do tworzenia lub używania tokenów. Zobacz administratora obszaru roboczego lub następujące elementy:

Aby uwierzytelnić się przy użyciu osobistego tokenu dostępu usługi Azure Databricks, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia 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);
// ...
  • Pełny przykład kodu Java, który można dostosować poprzedni fragment kodu do własnych potrzeb, zobacz przykładowy kod na początku tego artykułu.
  • W poprzednim adresie URL lub kodzie Java zastąp <personal-access-token> ciąg osobistym tokenem dostępu usługi Databricks dla użytkownika obszaru roboczego.
  • Aby uzyskać wartości parametrów <server-hostname> i <http-path>, zobacz Ustawienia obliczeniowe sterownika JDBC usługi Databricks.

Token microsoft Entra ID (dawniej Azure Active Directory)

Sterowniki ODBC i JDBC 2.6.15 i nowsze obsługują tokeny Microsoft Entra ID (dawniej Azure Active Directory) dla użytkownika usługi Azure Databricks lub jednostki usługi Microsoft Entra ID.

Aby utworzyć token dostępu microsoft Entra ID, wykonaj następujące czynności:

Tokeny dostępu identyfikatora Entra firmy Microsoft mają domyślny okres istnienia około 1 godziny. Token dostępu można odświeżyć programowo dla istniejącej sesji bez przerywania połączenia, uruchamiając kod w obszarze Odświeżanie tokenu dostępu identyfikatora entra firmy Microsoft. Aby uzyskać instrukcje dotyczące odświeżania tokenu, zobacz sekcję Configuring Authentication > Using OAuth 2.0 w przewodniku sterowników JDBC usługi Databricks.

Aby uwierzytelnić się przy użyciu tokenu identyfikatora Entra firmy Microsoft, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

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

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia 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);
// ...
  • Pełny przykład kodu Java, który można dostosować poprzedni fragment kodu do własnych potrzeb, zobacz przykładowy kod na początku tego artykułu.
  • W poprzednim adresie URL lub kodzie Java zastąp <microsoft-entra-id-token> ciąg tokenem Microsoft Entra ID.
  • Aby uzyskać wartości parametrów <server-hostname> i <http-path>, zobacz Ustawienia obliczeniowe sterownika JDBC usługi Databricks.

Aby uzyskać więcej informacji, zobacz sekcję Token Pass-through w przewodniku sterowników JDBC usługi Databricks.

Tokeny protokołu OAuth 2.0

Sterownik JDBC 2.6.36 lub nowszy obsługuje token OAuth 2.0 dla jednostki usługi Microsoft Entra ID. Jest to również nazywane uwierzytelnianiem przekazywanym tokenu OAuth 2.0.

  • Aby utworzyć token OAuth 2.0 na potrzeby uwierzytelniania przekazywanego tokenu dla jednostki usługi Microsoft Entra ID, zobacz Ręczne generowanie i używanie tokenów dostępu do uwierzytelniania OAuth M2M. Zanotuj wartość OAuth access_token jednostki usługi.

  • Aby utworzyć jednostkę usługi zarządzanej identyfikatora entra firmy Microsoft, zobacz Zarządzanie jednostkami usługi.

    Ważne

    Sterownik JDBC 2.6.36 lub nowszy obsługuje używanie wpisów tajnych protokołu OAuth usługi Azure Databricks do tworzenia tokenów OAuth 2.0. Wpisy tajne identyfikatora Entra firmy Microsoft nie są obsługiwane.

Tokeny OAuth 2.0 mają domyślny okres istnienia 1 godziny. Aby wygenerować nowy token OAuth 2.0, powtórz ten proces.

Aby uwierzytelnić się przy użyciu uwierzytelniania przekazywanego tokenu OAuth 2.0, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

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

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia 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);
// ...
  • Pełny przykład kodu Java, który można dostosować poprzedni fragment kodu do własnych potrzeb, zobacz przykładowy kod na początku tego artykułu.
  • W poprzednim adresie URL lub kodzie Java zastąp element <oauth-token> tokenem OAuth usługi Azure Databricks. (Tokeny identyfikatora Entra firmy Microsoft nie są obsługiwane w przypadku uwierzytelniania przekazywanego tokenu OAuth 2.0).
  • Aby uzyskać wartości parametrów <server-hostname> i <http-path>, zobacz Ustawienia obliczeniowe sterownika JDBC usługi Databricks.

Aby uzyskać więcej informacji, zobacz sekcję Token Pass-through w przewodniku sterowników JDBC usługi Databricks.

Uwierzytelnianie typu użytkownik-komputer (U2M) OAuth

Sterownik JDBC w wersji 2.6.36 lub nowszej obsługuje uwierzytelnianie użytkownika-komputer OAuth (U2M) dla użytkownika usługi Azure Databricks. Jest to również nazywane uwierzytelnianiem opartym na przeglądarce OAuth 2.0.

Uwierzytelnianie oparte na przeglądarce OAuth U2M lub OAuth 2.0 nie ma wymagań wstępnych. Tokeny OAuth 2.0 mają domyślny okres istnienia 1 godziny. Uwierzytelnianie oparte na przeglądarce OAuth U2M lub OAuth 2.0 powinno odświeżyć wygasłe tokeny OAuth 2.0.

Uwaga

Uwierzytelnianie oparte na przeglądarce OAuth U2M lub OAuth 2.0 działa tylko z aplikacjami, które działają lokalnie. Nie działa z aplikacjami opartymi na serwerze ani w chmurze.

Aby uwierzytelnić się przy użyciu uwierzytelniania OAuth na komputerze (U2M) lub uwierzytelniania opartego na przeglądarce OAuth 2.0, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

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

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia 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);
// ...
  • Pełny przykład kodu Java, który można dostosować poprzedni fragment kodu do własnych potrzeb, zobacz przykładowy kod na początku tego artykułu.
  • W poprzednim adresie URL lub kodzie Java zastąp <passphrase> wybranym hasłem. Sterownik używa tego klucza do szyfrowania tokenu odświeżania.
  • Aby uzyskać wartości parametrów <server-hostname> i <http-path>, zobacz Ustawienia obliczeniowe sterownika JDBC usługi Databricks.

Aby uzyskać więcej informacji, zobacz sekcję Using Browser Based Authentication w przewodniku sterowników JDBC usługi Databricks.

Uwierzytelnianie maszyny do maszyny OAuth (M2M)

Sterownik JDBC 2.6.36 lub nowszy obsługuje uwierzytelnianie maszyny do maszyny OAuth (M2M) dla jednostki usługi Microsoft Entra ID. Jest to również nazywane uwierzytelnianiem poświadczeń klienta OAuth 2.0.

Aby skonfigurować uwierzytelnianie poświadczeń klienta OAuth M2M lub OAuth 2.0, wykonaj następujące czynności:

  1. Utwórz jednostkę usługi zarządzanej microsoft Entra ID, a następnie przypisz ją do kont i obszarów roboczych usługi Azure Databricks. Aby to zrobić, zobacz Zarządzanie jednostkami usługi.

    Ważne

    Sterownik JDBC 2.6.36 lub nowszy obsługuje wpisy tajne protokołu OAuth usługi Azure Databricks dla uwierzytelniania OAuth M2M lub OAuth 2.0 klienta. Wpisy tajne identyfikatora Entra firmy Microsoft nie są obsługiwane.

  2. Utwórz wpis tajny OAuth usługi Azure Databricks dla jednostki usługi. Aby to zrobić, zobacz Ręczne generowanie i używanie tokenów dostępu do uwierzytelniania OAuth M2M.

  3. Nadaj jednostce usługi dostęp do klastra lub magazynu. Zobacz Uprawnienia obliczeniowe lub Zarządzanie usługą SQL Warehouse.

Aby uwierzytelnić się przy użyciu uwierzytelniania maszynowego do maszyny OAuth (M2M) lub uwierzytelniania poświadczeń klienta OAuth 2.0, ustaw następującą konfigurację.

W przypadku adresu URL połączenia JDBC z osadzonymi właściwościami konfiguracji ogólnej i poufnymi właściwościami poświadczeń:

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

W przypadku kodu Java z ogólnymi właściwościami konfiguracji i poufnymi właściwościami poświadczeń ustawionymi poza adresem URL połączenia 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);
// ...
  • Pełny przykład kodu Java, który można dostosować poprzedni fragment kodu do własnych potrzeb, zobacz przykładowy kod na początku tego artykułu.
  • W poprzednim adresie URL lub kodzie Java zastąp następujące symbole zastępcze:
    • Zastąp wartość <service-principal-application-id> identyfikatorem aplikacji (klienta) jednostki usługi.
    • Zastąp element <service-principal-oauth-secret> wpisem tajnym OAuth jednostki usługi Azure Databricks. (Wpisy tajne identyfikatora entra firmy Microsoft nie są obsługiwane w przypadku uwierzytelniania OAuth M2M lub OAuth 2.0 poświadczeń klienta).
    • Aby uzyskać wartości parametrów <server-hostname> i <http-path>, zobacz Ustawienia obliczeniowe sterownika JDBC usługi Databricks.

Aby uzyskać więcej informacji, zobacz sekcję Using M2M Based Authentication w przewodniku sterowników JDBC usługi Databricks.