Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Tato funkce je ve verzi Public Preview v následujících oblastech: westus, westus2, eastus, eastus2, centralus, southcentralus, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, southeastasia, uksouth.
Tato stránka popisuje, jak se ověřit v instanci databáze Lakebase. Existují dva způsoby ověřování:
- Získejte token OAuth a ověřte se pomocí identit Azure Databricks.
- Používejte nativní role Postgres s hesly.
Ověřování pomocí identit Azure Databricks
Při ověřování jako identity Azure Databricks musíte vygenerovat token OAuth a použít ho jako heslo při připojování k Postgresu.
Důležité informace před zahájením
Platnost tokenů OAuth vyprší po jedné hodině, ale vypršení platnosti se vynucuje jenom při přihlášení. Otevřená připojení zůstávají aktivní i v případě, že vyprší platnost tokenu. Jakýkoli příkaz PostgreSQL, který vyžaduje ověření, se však nezdaří, pokud vypršela platnost tokenu.
Tokeny OAuth používané pro ověřování Postgres mají obor pracovního prostoru a měly by patřit do stejného pracovního prostoru, který vlastní instanci databáze. Ověřování tokenů mezi pracovními prostory se nepodporuje. Další informace o ověřování najdete v tématu Ověřování rozhraní příkazového řádku Databricks.
Ověřování na základě tokenu vyžaduje heslo prostého textu, takže jsou povolená pouze připojení SSL. Ujistěte se, že je klientská knihovna, kterou používáte pro přístup k postgresu s ověřováním na základě tokenu, nakonfigurovaná tak, aby navazovala připojení SSL.
Získání tokenu OAuth v toku user-to-machine
Pokud jste vlastník databáze, správce nebo vaše identita Azure Databricks má odpovídající roli Postgres pro instanci databáze, můžete získat token OAuth z uživatelského rozhraní, rozhraní příkazového řádku Databricks nebo některé ze sad SDK Databricks. Rozsah tokenu můžete odpovídajícím způsobem omezit pomocí rozhraní příkazového řádku Databricks.
Další uživatelé identit Azure Databricks, podívejte se na Autorizace přístupu uživatelů k Azure Databricks pomocí OAuth pro pokyny k autorizaci na úrovni pracovního prostoru, abyste získali tokeny OAuth.
uživatelské rozhraní
Pokud je stav instance databáze k dispozici, získejte token OAuth pomocí uživatelského rozhraní Azure Databricks:
- Klikněte na
Aplikace v pravém horním rohu a vyberte Lakebase Postgres.
- Kliknutím na Zřízeno otevřete stránku Zřízené instance .
- Vyhledejte a klikněte na název instance databáze, pro kterou chcete získat token OAuth.
- Klikněte na kartu Podrobnosti o připojení.
- Klikněte na Získat token OAuth. Příznak označuje, kdy byl token vytvořen.
- Kliknutím na Kopírovat OAuthToken zkopírujte token do schránky.
CLI
Pokud je stav instance databáze k dispozici, získejte token OAuth pomocí rozhraní příkazového řádku Databricks v0.256.0 a novější:
- K načtení tokenu použijte následující příkaz.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }' - Tím se vygeneruje odpověď v následujícím formátu. Zkopírujte
tokenz odpovědi.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Další informace o použití rozhraní příkazového řádku Databricks k získání tokenu OAuth najdete v tématu Ověřování uživatele a počítače OAuth (U2M).
Python SDK
OAuth token můžete vygenerovat pomocí Databricks SDK pro Python. Vazby sady Azure Databricks SDK jsou k dispozici v sadě Databricks SDK pro Python verze v0.56.0.
Pokud používáte starší verzi sady SDK, nejprve spusťte tyto příkazy.
%pip install --upgrade databricks-sdk
%restart_python
Sada Databricks SDK pro Python vygeneruje zabezpečený token credOAuth pro vaši instanci databáze. Zadejte svoje přihlašovací údaje tam, kde je to potřeba.
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
Token OAuth můžete vygenerovat pomocí sady Databricks SDK pro Javu. Vazby na databázové sady SDK jsou k dispozici v Databricks SDK pro Javu od verze v0.53.0 nebo vyšší. Pokud používáte starší verzi sady SDK, možná budete muset importovanou sadu SDK aktualizovat. Další informace najdete zde.
%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())
Získání tokenu OAuth v toku počítače do počítače
Pokud chcete povolit zabezpečený automatizovaný přístup (stroj-počítač) k instanci databáze, musíte získat token OAuth pomocí instančního objektu Azure Databricks. Tento proces zahrnuje konfiguraci instančního objektu, generování přihlašovacích údajů a vytváření tokenů OAuth pro ověřování.
Nakonfigurujte instanční objekt s neomezenou životností přihlašovacích údajů. Pokyny najdete v tématu Autorizace přístupu instančního objektu k Azure Databricks pomocí OAuth.
Vytvořte nové OAuth tokeny jako hlavní službu.
CLI
Pokud je stav instance databáze k dispozici, získejte token OAuth pomocí rozhraní příkazového řádku Databricks v0.256.0 a novější:
K načtení tokenu použijte následující příkaz.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }'Tím se vygeneruje odpověď v následujícím formátu. Zkopírujte
tokenz odpovědi.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Python SDK
OAuth token můžete vygenerovat pomocí Databricks SDK pro Python. Vazby sady Azure Databricks SDK jsou k dispozici v sadě Databricks SDK pro Python verze v0.56.0.
Pokud používáte starší verzi sady SDK, nejprve spusťte tyto příkazy.
%pip install --upgrade databricks-sdk %restart_pythonSada Databricks SDK pro Python vygeneruje zabezpečený token
credOAuth pro vaši instanci databáze. V případě potřeby zadejte název instance databáze.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
Token OAuth můžete vygenerovat pomocí sady Databricks SDK pro Javu. Vazby na databázové sady SDK jsou k dispozici v Databricks SDK pro Javu od verze v0.53.0 nebo vyšší. Pokud používáte starší verzi sady SDK, možná budete muset provést aktualizaci na novější sadu SDK. Další informace najdete zde.
%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())
Poznámka:
Obměňte tokeny OAuth před hodinovým vypršením.
- Zkontrolujte čas vypršení platnosti tokenu OAuth při každém použití a v případě potřeby aktualizujte.
- Případně můžete nastavit vlákno na pozadí pro pravidelné aktualizace aktuálního tokenu OAuth.
Řešení potíží s identitou tokenu
Pokud identita vašeho tokenu neodpovídá popisku zabezpečení, může se zobrazit chybová zpráva podobná následující.
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.
Spuštěním následujícího příkazu zkontrolujte, která identita Azure Databricks se vrátí:
CLI
databricks current-user me
Python SDK
w.current_user.me().user_name
Java SDK
w.currentUser.me().getUserName()
Pokud očekávaná identita není vrácena, ověřte, že se při inicializaci klienta pracovního prostoru použily správné přihlašovací údaje.
Ověřování pomocí ID Microsoft Entra
Pro Azure Databricks je možné identity a tokeny Microsoft Entra ID použít také k ověřování v rozhraních API Azure Databricks. Pomocí těchto rozhraní API získejte token pro ověření v Postgresu.
Informace o správě identit spravovaných Microsoft Entra ID v Azure Databricks najdete v tématu Správa uživatelů, instančních objektů a skupin. Uživatele, skupiny a instanční objekty z ID Microsoft Entra je možné vytvořit v Azure Databricks. Jakmile se tyto identity přidají do Azure Databricks, můžete je přidat do instance databáze, jak je popsáno v části Správa rolí Postgres.
Pokud chcete načíst tokeny Microsoft Entra ID, postupujte podle následujících pokynů:
- Získejte tokeny MICROSOFT Entra ID pro uživatele.
- Získání ID tokenů Microsoft Entra pro služební zástupce
Ověření jako skupina Azure Databricks
Skupiny a členství ve skupinách se nesynchronizují z Azure Databricks do Postgresu a ani jedno nemá oprávnění ke katalogu Unity. Po přidání skupiny Azure Databricks do Postgres se ale každý uživatel Azure Databricks ve skupině může přihlásit jako skupina pomocí hesla uživatele. To umožňuje spravovat oprávnění na úrovni skupiny v Postgres. Jakýkoli přímý nebo nepřímý člen (uživatel nebo instanční objekt) identity skupiny Azure Databricks se může ověřit pro Postgres a přihlásit se jako role Postgres skupiny Azure Databricks.
Při ověřování identity skupiny pomocí tokenu uživatele nebo instančního objektu se členství ve skupinách ověřuje pouze v čase ověřování. Jakékoli otevřené připojení s tokenem člena skupiny zůstane otevřené, pokud se člen po ověření odebere ze skupiny. Všechny nové žádosti o připojení odebraného člena skupiny se během ověřování zamítnou.
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
Pro přihlášení Postgres založeného na skupině se podporují jenom skupiny přiřazené k pracovnímu prostoru Azure Databricks instance databáze. Informace o tom, jak přiřadit skupinu k pracovnímu prostoru, najdete v tématu Přiřazení skupiny k pracovnímu prostoru.
Ověřování pomocí rolí a hesel Postgres
Pokud máte klienty, kteří nepodporují obměnu přihlašovacích údajů po jedné hodině, můžete vytvořit nativní role Postgres pomocí hesel:
Klikněte na
Aplikace v pravém horním rohu a vyberte Lakebase Postgres.
Kliknutím na Zřízeno otevřete stránku Zřízené instance .
Vyberte instanci databáze, kterou chcete aktualizovat.
Klikněte na Upravit v pravém horním rohu.
Zapněte Přihlášení s nativní rolí Postgres.
Klikněte na Uložit.
Přihlaste se k Postgresu nebo pomocí editoru SQL vytvořte roli s heslem.
CREATE ROLE new_role LOGIN PASSWORD 'your strong password';Udělte nové roli další oprávnění Postgres. Viz udělování oprávnění rolím Postgres pomocí PostgreSQL.
Další kroky
Po získání přihlašovacích údajů (token OAuth nebo heslo) se můžete připojit k instanci databáze: