Megosztás:


Hitelesítés egy adatbázispéldányhoz

Fontos

A Kiépített Lakebase nyilvános előzetes verzióban érhető el a következő régiókban: westus, , westus2, eastus, eastus2centralus, southcentralus, northeuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindiasoutheastasiauksouth.

A Lakebase Provisioned manuálisan skálázott kiépített számítást használ. Az új Lakebase Automatikus skálázás funkció-összehasonlítását a verziók közötti választás című témakörben találhatja meg.

Ez az oldal leírja, hogyan lehet hitelesíteni egy Lakebase adatbázis-példányt. Kétféleképpen hitelesíthető:

  1. OAuth-jogkivonat beszerzése és hitelesítés Azure Databricks-identitásokkal.
  2. Használjon natív Postgres-szerepköröket jelszavakkal.

Hitelesítés Azure Databricks-identitásokkal

Amikor Azure Databricks-identitásként hitelesít, létre kell hoznia egy OAuth-jogkivonatot, és jelszóként kell használnia a Postgreshez való csatlakozáskor.

Megfontolandó szempontok a kezdés előtt

  • Az OAuth-jogkivonatok egy óra elteltével lejárnak, de a lejárat csak bejelentkezéskor érvényes. A nyitott kapcsolatok akkor is aktívak maradnak, ha a jogkivonat lejár. A hitelesítést igénylő PostgreSQL-parancsok azonban meghiúsulnak, ha a jogkivonat lejárt.

  • A Postgres-hitelesítéshez használt OAuth-jogkivonatok munkaterület-hatókörűek, és ugyanahhoz a munkaterülethez tartoznak, amely az adatbázispéldány tulajdonosa. A munkaterületek közötti jogkivonat-hitelesítés nem támogatott. A hitelesítéssel kapcsolatos további információkért tekintse meg a Databricks parancssori felületének hitelesítését.

  • A jogkivonatalapú hitelesítés egyszerű szöveges jelszót igényel, ezért csak SSL-kapcsolatok engedélyezettek. Győződjön meg arról, hogy a Postgres jogkivonatalapú hitelesítéssel való eléréséhez használt ügyfélkódtár SSL-kapcsolat létesítésére van konfigurálva.

OAuth-jogkivonat beszerzése a felhasználó–gép folyamatában

Ha Ön adatbázistulajdonos, rendszergazda vagy Azure Databricks-identitása megfelelő Postgres-szerepkörrel rendelkezik az adatbázispéldányhoz, beszerezhet egy OAuth-jogkivonatot a felhasználói felületről, a Databricks parancssori felületéről vagy valamelyik Databricks SDK-ból. A databricks parancssori felülettel megfelelően korlátozhatja a jogkivonat hatókörét.

Más Azure Databricks-identitásfelhasználók esetében lásd: Felhasználói hozzáférés engedélyezése az Azure Databrickshez OAuth-tal a munkaterületszintű engedélyezési utasításokhoz OAuth-jogkivonatok beszerzéséhez.

UI

Ha az adatbázispéldány állapotaelérhető, az Azure Databricks felhasználói felületén szerezze be az OAuth-jogkivonatot:

  1. Kattintson az Alkalmazás ikonra.Alkalmazások a jobb felső sarokban, és válassza a Lakebase Postgres lehetőséget.
  2. A Kiépített példányok lap megnyitásához kattintson a Kiépített gombra.
  3. Keresse meg és kattintson annak az adatbázispéldánynak a nevére, amelyhez OAuth-jogkivonatot szeretne beszerezni.
  4. Kattintson a Kapcsolat részletei fülre.
  5. Kattintson az OAuth-jogkivonat lekérése gombra. A jelölő jelzi, hogy a jogkivonat mikor lett létrehozva.
  6. Kattintson a OAuthToken másolása gombra a jogkivonat vágólapra másolásához.

parancssori felület

Ha az adatbázispéldány állapotaelérhető, a Databricks CLI 0.256.0-s és újabb verziójával szerezze be az OAuth-jogkivonatot:

  1. A következő paranccsal lekérhet egy tokent.
     databricks database generate-database-credential \
       --request-id $(uuidgen) \
       --json '{
         "instance_names": ["db-instance-name"]
       }'
    
  2. Ez a következő formátumban hoz létre választ. Másolja ki a token válaszból.
    {
      "expiration_time": "2025-08-24T14:15:22Z",
      "token": "<string>"
    }
    

Az OAuth-jogkivonat szerezéséhez a Databricks CLI (parancssori felület) használatával kapcsolatos további információkért lásd: OAuth user-to-machine (U2M) hitelesítés.

Python SDK

OAuth-jogkivonatot a Pythonhoz készült Databricks SDK használatával hozhat létre. Az Azure Databricks SDK-kötések a Python 0.56.0-s verziójához készült Databricks SDK-ban érhetők el.

Ha az SDK egy régebbi verziójával fut, először futtassa ezeket a parancsokat.

%pip install --upgrade databricks-sdk
%restart_python

A Pythonhoz készült Databricks SDK létrehoz egy biztonságos OAuth-jogkivonatot credaz adatbázispéldányhoz. Szükség esetén adja meg a hitelesítő adatait.

from databricks.sdk import WorkspaceClient
import uuid

w = WorkspaceClient()

instance_name = "<YOUR INSTANCE>"

cred = w.database.generate_database_credential(request_id=str(uuid.uuid4()), instance_names=[instance_name])

Java SDK

OAuth-jogkivonatot a Java Databricks SDK-val hozhat létre. Az adatbázis-SDK-kötések a Databricks SDK-ban érhetők el a Java 0.53.0-s vagy újabb verziójához. Ha az SDK egy régebbi verziójával fut, előfordulhat, hogy frissítenie kell az importált SDK-t. További információt itt talál.

%scala

import com.databricks.sdk.WorkspaceClient
import com.databricks.sdk.service.database.GetDatabaseInstanceRequest
import com.databricks.sdk.service.database.GenerateDatabaseCredentialRequest
import com.databricks.sdk.service.database.DatabaseInstance
import com.databricks.sdk.service.database.DatabaseCredential
import java.util.Collections
import java.util.UUID

val w = new WorkspaceClient()

val instanceName = "<YOUR INSTANCE>"

// Generate database credential
val cred = w.database().generateDatabaseCredential(
    new GenerateDatabaseCredentialRequest()
        .setRequestId(UUID.randomUUID().toString())
        .setInstanceNames(Collections.singletonList(instanceName))
)

// Print out credential details
System.out.println("Credential: " + cred.getToken())

OAuth-jogkivonat beszerzése gépről gépre folyamatban

Az adatbázispéldányhoz való biztonságos, automatizált (gépről gépre) hozzáférés engedélyezéséhez egy OAuth-jogkivonatot kell beszereznie egy Azure Databricks szolgáltatási fiókkal. Ez a folyamat magában foglalja a szolgáltatásidentitás konfigurálását, a hitelesítő adatok generálását és az OAuth-jogkivonatok hitelesítés céljából történő kibocsátását.

  1. Konfiguráljon egy szolgáltatásfőfelhasználót határozatlan élettartamú hitelesítő adatokkal. Útmutatásért lásd: Szolgáltatásnév hozzáférésének engedélyezése az Azure Databrickshez az OAuth használatával.

  2. Hozzon létre új OAuth-jogkivonatokat szolgáltatási főkapcsolatként.

    parancssori felület

    Ha az adatbázispéldány állapotaelérhető, a Databricks CLI 0.256.0-s és újabb verziójával szerezze be az OAuth-jogkivonatot:

    1. A következő paranccsal lekérhet egy tokent.

        databricks database generate-database-credential \
          --request-id $(uuidgen) \
          --json '{
            "instance_names": ["db-instance-name"]
          }'
      
    2. Ez a következő formátumban hoz létre választ. Másolja ki a token válaszból.

      {
        "expiration_time": "2025-08-24T14:15:22Z",
        "token": "<string>"
      }
      

    Python SDK

    OAuth-jogkivonatot a Pythonhoz készült Databricks SDK használatával hozhat létre. Az Azure Databricks SDK-kötések a Python 0.56.0-s verziójához készült Databricks SDK-ban érhetők el.

    Ha az SDK egy régebbi verziójával fut, először futtassa ezeket a parancsokat.

    %pip install --upgrade databricks-sdk
    %restart_python
    

    A Pythonhoz készült Databricks SDK létrehoz egy biztonságos OAuth-jogkivonatot credaz adatbázispéldányhoz. Szükség esetén adja meg az adatbázispéldány nevét.

    from databricks.sdk import WorkspaceClient
    import uuid
    
    w = WorkspaceClient(
      host          = "https://<YOUR WORKSPACE URL>/",
      client_id     = "<YOUR SERVICE PRINCIPAL ID>",
      client_secret = "REDACTED"
    )
    
    instance_name = "<YOUR INSTANCE>"
    
    cred = w.database.generate_database_credential(request_id=str(uuid.uuid4()), instance_names=[instance_name])
    

    Java SDK

    OAuth-jogkivonatot a Java Databricks SDK-val hozhat létre. Az adatbázis-SDK-kötések a Databricks SDK-ban érhetők el a Java 0.53.0-s vagy újabb verziójához. Ha az SDK egy régebbi verziójával fut, előfordulhat, hogy frissítenie kell egy újabb SDK-ra. További információt itt talál.

    %scala
    
    import com.databricks.sdk.WorkspaceClient
    import com.databricks.sdk.core.DatabricksConfig
    import com.databricks.sdk.service.database.GetDatabaseInstanceRequest
    import com.databricks.sdk.service.database.GenerateDatabaseCredentialRequest
    import com.databricks.sdk.service.database.DatabaseInstance
    import com.databricks.sdk.service.database.DatabaseCredential
    import java.util.Collections
    import java.util.UUID
    
    val config = new DatabricksConfig() // See https://github.com/databricks/databricks-sdk-java#authentication
    val w = new WorkspaceClient(config)
    
    val instanceName = "<YOUR INSTANCE>"
    
    // Generate database credential
    val cred = w.database().generateDatabaseCredential(
        new GenerateDatabaseCredentialRequest()
            .setRequestId(UUID.randomUUID().toString())
            .setInstanceNames(Collections.singletonList(instanceName))
    )
    
    // Print out credential details
    System.out.println("Credential: " + cred.getToken())
    

Megjegyzés:

OAuth-jogkivonatok elforgatása óránkénti lejárat előtt:

  • Ellenőrizze az OAuth-jogkivonat lejárati idejét minden használatkor, és szükség esetén frissítsen.
  • Másik lehetőségként állítson be egy háttérszálat az aktuális OAuth-jogkivonat rendszeres frissítéséhez.

Tokenazonosító hibaelhárítása

Ha a jogkivonat identitása nem egyezik a biztonsági címkével, az alábbihoz hasonló hibaüzenet jelenhet meg.

A valid oauth token was supplied but the token's identity "<USER>" did not match the security label configured for role "<SERVICE PRINCIPAL>". Please ensure that the token is generated for the correct databricks identity.

Futtassa a következő parancsot annak ellenőrzéséhez, hogy melyik Azure Databricks-identitás lesz visszaadva:

parancssori felület

databricks current-user me

Python SDK

w.current_user.me().user_name

Java SDK

w.currentUser.me().getUserName()

Ha a várt identitás nem lett visszaadva, ellenőrizze, hogy a megfelelő hitelesítő adatokat használták-e a munkaterület-ügyfél inicializálása során.

Hitelesítés Microsoft Entra-azonosítóval

Az Azure Databricks esetében a Microsoft Entra-azonosítók és -jogkivonatok az Azure Databricks API-k hitelesítésére is használhatók. Ezekkel az API-kkal token szerezhető be a Postgres hitelesítéséhez.

A Microsoft Entra ID által felügyelt identitások Azure Databricksben való kezeléséről további információt a felhasználók, szolgáltatásnevek és csoportok kezelése című témakörben talál. A Microsoft Entra ID-ból származó felhasználók, csoportok és szolgáltatásnevek az Azure Databricksben hozhatók létre. Miután hozzáadta ezeket az identitásokat az Azure Databrickshez, hozzáadhatja őket az adatbázispéldányhoz a PostgreSQL-szerepkörök kezelése című cikkben leírtak szerint.

A Microsoft Entra ID-jogkivonatok lekéréséhez tekintse meg a következőket:

Hitelesítés Azure Databricks-csoportként

A csoportok és csoporttagságok nem szinkronizálódnak az Azure Databricksből a Postgresbe, és a Unity Catalog-engedélyek sem. Miután azonban hozzáadtak egy Azure Databricks-csoportot a Postgreshez, a csoport bármely Azure Databricks-felhasználója bejelentkezhet csoportként a felhasználó jelszavával. Így a Postgres csoportszinten kezelheti az engedélyeket. Az Azure Databricks-csoport identitásának bármely közvetlen vagy közvetett tagja (felhasználó vagy szolgáltatásnév) hitelesíthet a Postgresben, és bejelentkezhet Azure Databricks-csoport Postgres-szerepköreként.

Ha felhasználó- vagy szolgáltatásnév-jogkivonat használatával hitelesít csoportidentitást, a csoporttagság csak a hitelesítéskor lesz érvényesítve. A csoporttag-jogkivonattal létesített nyitott kapcsolatok akkor is nyitva maradnak, ha a tagot a hitelesítés után eltávolítják a csoportból. A rendszer elutasítja az eltávolított csoporttagok új csatlakozási kéréseit a hitelesítés során.

export PGPASSWORD='<OAuth token of a group member>'
export GROUPROLENAME=<pg-case-sensitive-group-role-name>

psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUPROLENAME

Csoportalapú Postgres-bejelentkezéshez csak az adatbázispéldány Azure Databricks-munkaterületéhez rendelt csoportok támogatottak. Ha meg szeretné tudni, hogyan rendelhet csoportokat egy munkaterülethez, olvassa el a Csoport hozzárendelése munkaterülethez című témakört.

Hitelesítés Postgres-szerepkörökkel és jelszavakkal

Ha olyan ügyfelekkel rendelkezik, amelyek egy óra elteltével nem támogatják a hitelesítő adatok rotálását, natív Postgres-szerepköröket hozhat létre jelszavakkal:

  1. Kattintson az Alkalmazás ikonra.Alkalmazások a jobb felső sarokban, és válassza a Lakebase Postgres lehetőséget.

  2. A Kiépített példányok lap megnyitásához kattintson a Kiépített gombra.

  3. Válassza ki a frissíteni kívánt adatbázispéldányt.

  4. Kattintson a szerkesztés gombra a jobb felső sarokban.

  5. Kapcsolja be a Postgres natív szerepkör-bejelentkezésének engedélyezését.

  6. Kattintson a Mentés lehetőségre.

  7. Jelentkezzen be a Postgresbe, vagy használja az SQL-szerkesztőt egy jelszóval rendelkező szerepkör létrehozásához.

    CREATE ROLE new_role LOGIN PASSWORD 'your strong password';
    
  8. Adjon további Postgres-engedélyeket az új szerepkörhöz. Lásd : Jogosultságok megadása Postgres-szerepkörökhöz a PostgreSQL használatával.

Következő lépések

A hitelesítő adatok (OAuth-jogkivonat vagy jelszó) beszerzése után csatlakozhat az adatbázispéldányhoz: