Szybki start

Nawiąż połączenie z bazą danych przy użyciu tokenów OAuth lub haseł Postgres. Aby zarządzać infrastrukturą usługi Lakebase (tworzenie projektów, gałęzi, obliczeń), zobacz Uprawnienia projektu.

Wybierz metodę uwierzytelniania

Przed nawiązaniem połączenia zdecyduj, która metoda uwierzytelniania działa najlepiej w twoim przypadku użycia:

  • Rola OAuth: Uwierzytelnij się za pomocą tożsamości Azure Databricks przy użyciu tokenu OAuth. Właściciel projektu może nawiązać natychmiastowe połączenie. Aby zezwolić innym tożsamościom usługi Azure Databricks na korzystanie z uwierzytelniania OAuth, utwórz role bazy danych Postgres przy użyciu interfejsu użytkownika usługi Lakebase, języka SQL lub interfejsu API REST. Zobacz Tworzenie roli OAuth.
  • Natywne uwierzytelnianie haseł Postgres: Uwierzytelnianie przy użyciu roli Postgres przy użyciu tradycyjnego hasła bazy danych. Zobacz Tworzenie natywnej roli hasła Postgres.

Protokół OAuth zapewnia automatyczne wygasanie poświadczeń i integrację tożsamości obszaru roboczego, ale wymaga rotacji tokenów dla długotrwałych aplikacji. Hasła postgres nie wygasają ani nie wymagają rotacji, ale nie mają automatycznego wygasania i scentralizowanego zarządzania zabezpieczeniami usługi OAuth.

Przepływ uwierzytelniania

Nawiązywanie połączenia z bazą danych

Podczas łączenia się przez publiczny internet, jeśli korzystasz z zapory po stronie klienta, dodaj adresy IP używane przez Lakebase do swojej listy dozwolonych. Zobacz Adresy IP i domeny dla usług Databricks.

W poniższych przykładach użyto psqlstandardowego klienta Postgres. Aby uzyskać więcej informacji na temat nawiązywania połączenia przy użyciu narzędzia psql, zobacz Connect with psql (Nawiązywanie połączenia za pomocą narzędzia psql). Dostęp do bazy danych można również uzyskać za pośrednictwem notesów usługi Databricks, edytora SQL Lakebase, edytora tabel lub narzędzi innych firm, takich jak pgAdmin, oraz innych klientów zgodnych z Postgres. Aby uzyskać więcej opcji, zobacz Wykonywanie zapytań o dane .

Każdy projekt zawiera domyślną bazę danych o nazwie databricks_postgres , z którą można nawiązać połączenie. Ta baza danych jest własnością roli Postgres dla tożsamości Databricks (na przykład user@databricks.com), która automatycznie jest tworzona podczas tworzenia projektu. Aby utworzyć dodatkowe role bazy danych Postgres, zobacz Zarządzanie rolami Postgres.

Uwaga / Notatka

Wszystkie połączenia z bazą danych podlegają 24-godzinnym limitowi czasu bezczynności i maksymalnie 3-dniowemu okresowi połączenia. Zobacz Limity czasu połączenia.

Nawiązywanie połączenia z rolą OAuth

Role OAuth umożliwiają nawiązywanie połączenia przy użyciu tożsamości usługi Azure Databricks z uwierzytelnianiem opartym na tokenach. Rola OAuth właściciela projektu jest tworzona automatycznie. Aby zezwolić innym tożsamościom usługi Azure Databricks na korzystanie z uwierzytelniania OAuth, utwórz role bazy danych Postgres przy użyciu interfejsu użytkownika usługi Lakebase, języka SQL lub interfejsu API REST. Zobacz Tworzenie roli OAuth.

Aby wygenerować tokeny OAuth programowo lub w przypadku zautomatyzowanych przepływów pracy, zobacz Uzyskiwanie tokenu OAuth w przepływie użytkownika do maszyny na potrzeby sesji interakcyjnych lub Uzyskiwanie tokenu OAuth w przepływie maszynowo-maszynowym dla jednostek usługi.

Ważne

Tokeny OAuth wygasają po godzinie.

W przypadku aplikacji, które utrzymują długotrwałe połączenia z bazą danych, należy zaimplementować rotację tokenów, aby automatycznie odświeżyć poświadczenia przed ich wygaśnięciem. Bez rotacji tokenów aplikacja utraci łączność z bazą danych po godzinie.

Zobacz Przykłady rotacji tokenów , aby zapoznać się z przykładami kodu.

Aby nawiązać połączenie z rolą OAuth:

  1. W aplikacji Lakebase wybierz projekt i kliknij pozycję Połącz.

  2. Wybierz gałąź, obliczenia i bazę danych, z którą chcesz nawiązać połączenie, a następnie wybierz tożsamość usługi Azure Databricks z sekcji Role OAuth w menu rozwijanym Rola .

  3. Kliknij Kopiuj token OAuth, a następnie ustaw token w zmiennej środowiskowej PGPASSWORD w terminalu:

    export PGPASSWORD='<oauth-token>'
    
  4. Wybierz psql z rozwijanego menu nad fragmentem, następnie skopiuj fragment do terminala i uruchom go. psql odczytuje token z PGPASSWORD, więc nie jesteś proszony o podanie hasła. Jeśli i tak zostaniesz poproszony, zobacz Rozwiązywanie problemów z połączeniami OAuth.

Tokeny OAuth wygasają godzinę po wygenerowaniu. Aby ponownie połączyć się po wygaśnięciu tokena, skopiuj nowy token i wyeksportuj go ponownie do PGPASSWORD.

Połącz modal z otwartą listą rozwijaną 'Role' pokazującą sekcję ról OAuth

Uwaga / Notatka

Kopiuj token OAuth generuje token tylko dla twojej aktualnej tożsamości logowania, a nie dla podmiotów serwisowych czy innych użytkowników. Aby wygenerować tokeny dla innych tożsamości, użyj interfejsu wiersza polecenia lub zestawu SDK.

Rozwiązywanie problemów z połączeniami OAuth

  • psql Przestaje odpowiadać, gdy wkleisz token w monicie hasła. Tokeny OAuth są długie, a w niektórych terminalach wklejenie jednego w interaktywnym wierszu poleceń powoduje, że psql przestaje odpowiadać. Wyeksportuj token do PGPASSWORD przed uruchomieniem psql, jak opisano w poprzednich krokach.

  • psql pojawia się monit o hasło, mimo że PGPASSWORD jest ustawione. Inne ustawienia Postgres w Twoim środowisku mogą mieć pierwszeństwo przed PGPASSWORD, na przykład plik usługi połączeń ustawiony przez profil powłoki. Aby połączyć się niezależnie od tych ustawień, dodaj token do parametrów połączenia. Używaj podwójnych cudzysłowów, aby powłoka podstawiała wartość zmiennej:

    psql "postgresql://your-email%40databricks.com:${PGPASSWORD}@ep-abc-123.databricks.com/databricks_postgres?sslmode=require"
    

    Aby usunąć podstawową przyczynę, uruchom env | grep '^PG', aby sprawdzić zmienne PGSERVICEFILE lub PGSERVICE. Jeśli któraś z tych opcji jest ustawiona, wyłącz je na bieżącą sesję:

    unset PGSERVICE PGSERVICEFILE
    

    Aby zapobiec ponownemu ustawianiu zmiennych w nowych sesjach, usuń linie export, które je ustawiają, z profilu powłoki, takie jak ~/.bashrc lub ~/.zshrc.

Nawiązywanie połączenia przy użyciu natywnego hasła postgres

Natywne uwierzytelnianie haseł Postgres umożliwia nawiązywanie połączenia przy użyciu roli Postgres z tradycyjnym hasłem bazy danych.

Aby nawiązać połączenie za pomocą natywnego uwierzytelniania Postgres przy użyciu hasła:

  1. W aplikacji Lakebase wybierz projekt i kliknij pozycję Połącz.
  2. Wybierz gałąź, obliczenia i bazę danych, z którą chcesz nawiązać połączenie, a następnie wybierz rolę Postgres w sekcji Role postgres w menu rozwijanym Rola .
  3. Wybierz psql z rozwijanego menu nad fragmentem, następnie skopiuj fragment do terminala i uruchom go, aby się połączyć.

Okno dialogowe połączenia roli Postgres

Uwaga / Notatka

Usługa Lakebase zawiera wbudowany moduł puli połączeń dla natywnych ról haseł Postgres. Aby zmniejszyć obciążenie połączenia dla aplikacji o wysokiej przepływności, zobacz Używanie puli połączeń.

Dodatkowe zasoby