Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Bu özellik şu bölgelerde Genel Önizleme aşamasındadır: westus, westus2, eastus, , eastus2, centralus, , southcentralus, northeurope, westeuropeaustraliaeast, brazilsouth, canadacentral, centralindia, southeastasia, . uksouth
Bu sayfada, bir Lakebase veritabanı örneğinde kimlik doğrulamasının nasıl yapılacağını açıklanmaktadır. Kimlik doğrulaması yapmanın iki yolu vardır:
- Bir OAuth belirteci alın ve Azure Databricks kimliklerini kullanarak kimlik doğrulaması yapın.
- Parolalarla yerel Postgres rollerini kullanın.
Azure Databricks kimlikleriyle kimlik doğrulaması
Azure Databricks kimliği olarak kimlik doğrulaması yaptığınızda, Postgres'e bağlanırken bir OAuth belirteci oluşturmanız ve bunu parola olarak kullanmanız gerekir.
Başlamadan önce dikkat edilmesi gerekenler
OAuth belirteçlerinin süresi bir saat sonra dolar, ancak süre sonu yalnızca oturum açma sırasında uygulanır. Belirtecin süresi dolsa bile açık bağlantılar etkin kalır. Ancak, kimlik doğrulaması gerektiren herhangi bir PostgreSQL komutu, belirtecin süresi dolduysa başarısız olur.
Postgres kimlik doğrulaması için kullanılan OAuth belirteçleri çalışma alanı kapsamındadır ve veritabanı örneğinin sahibi olan çalışma alanına ait olmalıdır. Çalışma alanları arası belirteç kimlik doğrulaması desteklenmez. Kimlik doğrulaması hakkında daha fazla bilgi edinmek için bkz. Databricks CLI için kimlik doğrulaması.
Belirteç tabanlı kimlik doğrulaması düz metin parolası gerektirdiği için yalnızca SSL bağlantılarına izin verilir. Belirteç tabanlı kimlik doğrulamasıyla Postgres'e erişmek için kullandığınız istemci kitaplığının SSL bağlantısı kuracak şekilde yapılandırıldığından emin olun.
Kullanıcıdan makineye akışta OAuth belirteci alma
Veritabanı sahibi, yönetici veya Azure Databricks kimliğiniz veritabanı örneği için karşılık gelen bir Postgres rolüne sahipse kullanıcı arabiriminden, Databricks CLI'dan veya Databricks SDK'larından birinden bir OAuth belirteci alabilirsiniz. Databricks CLI kullanarak belirtecin kapsamını uygun şekilde kısıtlayabilirsiniz.
Diğer Azure Databricks kimlik kullanıcıları için, OAuth belirteçlerini almak için çalışma alanı düzeyinde yetkilendirme yönergeleri için bkz. OAuth ile Azure Databricks'e kullanıcı erişimini yetkilendirme.
Kullanıcı Arayüzü (UI)
Veritabanı örneğinizin DurumuKullanılabilir olduğunda, OAuth belirteci almak için Azure Databricks kullanıcı arabirimini kullanın:
- Çalışma alanı kenar çubuğunda Compute üzerine tıklayın ve Lakebase Tahsis Edildi sekmesine tıklayın.
- OAuth belirtecini almak istediğiniz veritabanı örneğinin adını bulun ve tıklayın.
- Bağlantı ayrıntıları sekmesine tıklayın.
- OAuth Belirteci Al'a tıklayın. Belirtecin ne zaman oluşturulduğunu gösteren bayrak.
- Belirteci panonuza kopyalamak için OAuthToken'ı Kopyala'ya tıklayın.
CLI
Veritabanı örneğinizin DurumuKullanılabilir olduğunda, OAuth belirteci almak için Databricks CLI v0.256.0 ve üzerini kullanın:
- Belirteç getirmek için aşağıdaki komutu kullanın.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }' - Bu, aşağıdaki biçimde bir yanıt oluşturur. Yanıttaki
tokenöğesini kopyalayın.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Databricks CLI kullanarak OAuth belirteci alma hakkında daha fazla bilgi için bkz. OAuth kullanıcıdan makineye (U2M) kimlik doğrulaması.
Python SDK'sı
Python için Databricks SDK'sını kullanarak bir OAuth belirteci oluşturabilirsiniz. Azure Databricks SDK bağlamaları, Python sürümü v0.56.0 için Databricks SDK'sında kullanılabilir.
SDK'nın eski bir sürümüyle çalışıyorsanız, önce bu komutları çalıştırın.
%pip install --upgrade databricks-sdk
%restart_python
Python için Databricks SDK'sı, credveritabanı örneğiniz için güvenli bir OAuth belirteci oluşturur. Gerektiğinde kimlik bilgilerinizi girin.
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'sı
Java için Databricks SDK'sını kullanarak bir OAuth belirteci oluşturabilirsiniz. Veritabanı SDK bağlamaları, Java sürüm v0.53.0 veya üzeri için Databricks SDK'sında kullanılabilir. SDK'nın eski bir sürümüyle çalışıyorsanız, içeri aktarılan SDK'yı yenilemeniz gerekebilir. Daha fazla bilgi için buraya bakın.
%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())
Makineden makineye akışta OAuth belirteci alma
Veritabanı örneğine güvenli, otomatik (makineden makineye) erişimi etkinleştirmek için Azure Databricks hizmet sorumlusu kullanarak bir OAuth belirteci edinmeniz gerekir. Bu işlem hizmet sorumlusunu yapılandırmayı, kimlik bilgileri oluşturmayı ve kimlik doğrulaması için OAuth belirteçlerini hazırlamayı içerir.
Süresiz geçerli kimlik bilgileriyle bir hizmet ilkesi yapılandırın. Yönergeler için bkz. OAuth ile Azure Databricks'e hizmet sorumlusu erişimini yetkilendirme.
Hizmet sorumlusu olarak yeni OAuth belirteçleri oluşturun.
CLI
Veritabanı örneğinizin DurumuKullanılabilir olduğunda, OAuth belirteci almak için Databricks CLI v0.256.0 ve üzerini kullanın:
Belirteç getirmek için aşağıdaki komutu kullanın.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }'Bu, aşağıdaki biçimde bir yanıt oluşturur. Yanıttaki
tokenöğesini kopyalayın.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Python SDK'sı
Python için Databricks SDK'sını kullanarak bir OAuth belirteci oluşturabilirsiniz. Azure Databricks SDK bağlamaları, Python sürümü v0.56.0 için Databricks SDK'sında kullanılabilir.
SDK'nın eski bir sürümüyle çalışıyorsanız, önce bu komutları çalıştırın.
%pip install --upgrade databricks-sdk %restart_pythonPython için Databricks SDK'sı,
credveritabanı örneğiniz için güvenli bir OAuth belirteci oluşturur. Gerektiğinde veritabanı örneğinizin adını girin.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'sı
Java için Databricks SDK'sını kullanarak bir OAuth belirteci oluşturabilirsiniz. Veritabanı SDK bağlamaları, Java sürüm v0.53.0 veya üzeri için Databricks SDK'sında kullanılabilir. SDK'nın eski bir sürümüyle çalışıyorsanız, daha yeni bir SDK'ya güncelleştirmeniz gerekebilir. Daha fazla bilgi için buraya bakın.
%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())
Uyarı
OAuth belirteçlerini saatlik süre dolmadan önce döndürün:
- Her kullanımda OAuth belirtecinin süre sonunu denetleyin ve gerektiğinde yenileyin.
- Alternatif olarak, geçerli OAuth belirtecini düzenli aralıklarla yenilemek için bir arka plan iş parçacığı ayarlayın.
Belirteç tanımlama sorunlarını çözme
Belirtecinizin kimliği güvenlik etiketiyle eşleşmiyorsa aşağıdaki gibi bir hata iletisi alabilirsiniz.
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.
Hangi Azure Databricks kimliğinin döndürüldüğünü kontrol etmek için aşağıdaki komutu çalıştırın.
CLI
databricks current-user me
Python SDK'sı
w.current_user.me().user_name
Java SDK'sı
w.currentUser.me().getUserName()
Beklenen kimlik döndürülmezse, çalışma alanı istemcisi başlatılırken doğru kimlik bilgilerinin kullanıldığını doğrulayın.
Microsoft Entra Kimliği ile kimlik doğrulaması
Azure Databricks için Microsoft Entra Id kimlikleri ve belirteçleri, Azure Databricks API'lerinde kimlik doğrulaması yapmak için de kullanılabilir. Postgres'de kimlik doğrulaması yapmak üzere bir belirteç almak için bu API'leri kullanın.
Azure Databricks'te Microsoft Entra ID yönetilen kimliklerini yönetme hakkında bilgi için bkz. Kullanıcıları, hizmet sorumlularını ve grupları yönetme. Microsoft Entra Id'den kullanıcılar, gruplar ve hizmet sorumluları Azure Databricks'te oluşturulabilir. Bu kimlikler Azure Databricks'e eklendikten sonra Postgres rollerini yönetme bölümünde açıklandığı gibi bunları veritabanı örneğine ekleyebilirsiniz.
Microsoft Entra Id belirteçlerini almak için aşağıdakilere bakın:
- Kullanıcılar için Microsoft Entra Id belirteçlerini alın.
- Hizmet sorumluları için Microsoft Entra ID jetonları alma
Azure Databricks grubu olarak kimlik doğrulaması
Gruplar ve grup üyelikleri Azure Databricks'ten Postgres'e eşitlenmez ve Unity Kataloğu izinleri de eşitlenmez. Ancak Postgres'e bir Azure Databricks grubu eklendikten sonra, gruptaki tüm Azure Databricks kullanıcıları kullanıcının parolasını kullanarak grup olarak oturum açabilir. Bu, Postgres'te grup düzeyinde izinleri yönetmenize olanak tanır. Azure Databricks grup kimliğinin herhangi bir doğrudan veya dolaylı üyesi (kullanıcı veya hizmet sorumlusu) Postgres'te kimlik doğrulaması yapabilir ve Azure Databricks grubu Postgres rolü olarak oturum açabilir.
Kullanıcı veya hizmet sorumlusu belirteci kullanarak grup kimliği ile kimlik doğrulaması yapılırken, grup üyeliği yalnızca kimlik doğrulaması sırasında doğrulanır. Bir grup üyesi belirteci ile yapılan tüm açık bağlantılar, üye kimlik doğrulamasından sonra gruptan kaldırılırsa açık kalır. Kaldırılan bir grup üyesinden gelen tüm yeni bağlantı istekleri kimlik doğrulaması sırasında reddedilir.
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
Grup tabanlı Postgres oturum açma bilgileri için yalnızca veritabanı örneğinin Azure Databricks çalışma alanına atanan gruplar desteklenir. Çalışma alanına grup atamayı öğrenmek için bkz. Çalışma alanına grup atama.
Postgres rolleri ve parolalarıyla kimlik doğrulaması
Bir saat sonra kimlik bilgisi döndürmeyi desteklemeyen istemcileriniz varsa, parolalarla yerel Postgres rolleri oluşturabilirsiniz:
Çalışma alanı kenar çubuğunda İşlem'e tıklayın.
Veritabanı örnekleri sekmesine tıklayın.
Güncelleştirmek istediğiniz veritabanı örneğini seçin.
Sağ üstteki Düzenle'ye tıklayın.
Postgres Yerel Rolü Oturum Açmayı Etkinleştir'i açın.
Kaydet'e tıklayın.
Parolayla rol oluşturmak için Postgres'de oturum açın veya SQL Düzenleyicisi'ni kullanın.
CREATE ROLE new_role LOGIN PASSWORD 'your strong password';Yeni role ek Postgres izinleri verin. Bkz. PostgreSQL kullanarak Postgres rollerine ayrıcalık verme.
Sonraki Adımlar
Bir kimlik bilgisi (OAuth belirteci veya parola) aldıktan sonra veritabanı örneğinize bağlanabilirsiniz: