Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта функция доступна в общедоступной предварительной версии в следующих регионах: westus, westus2eastuseastus2centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindia, . southeastasiauksouth
На этой странице описывается, как аутентифицироваться в экземпляре базы данных системы Lakebase. Существует два способа проверки подлинности:
- Получите маркер OAuth и выполните проверку подлинности с помощью удостоверений Azure Databricks.
- Используйте собственные роли Postgres с паролями.
Аутентификация с помощью учетных записей Azure Databricks
При аутентификации с использованием идентификатора Azure Databricks необходимо создать токен OAuth и использовать его в качестве пароля при подключении к PostgreSQL.
Рекомендации перед началом работы
Срок действия токенов OAuth истекает через час, но контролируется только при входе в систему. Открытые подключения остаются активными, даже если срок действия маркера истекает. Однако любая команда PostgreSQL, требующая проверки подлинности, завершается ошибкой, если срок действия маркера истек.
Токены OAuth, используемые для проверки подлинности Postgres, относятся к рабочей области и должны принадлежать той же рабочей области, которая управляет экземпляром базы данных. Аутентификация токена между рабочими пространствами не поддерживается. Дополнительные сведения о проверке подлинности см. в разделе "Проверка подлинности" для интерфейса командной строки Databricks.
Для проверки подлинности на основе маркеров требуется обычный пароль, поэтому разрешены только SSL-подключения. Убедитесь, что клиентская библиотека, используемая для доступа к Postgres с проверкой подлинности на основе маркеров, настроена для установления SSL-подключения.
Получение маркера OAuth в потоке "пользователь — компьютер"
Если вы являетесь владельцем базы данных, администратором или ваше удостоверение Azure Databricks имеет соответствующую роль Postgres для экземпляра базы данных, вы можете получить токен OAuth из пользовательского интерфейса, интерфейса командной строки Databricks или одного из SDK Databricks. Вы можете ограничить область действия маркера с помощью интерфейса командной строки Databricks.
Для других пользователей Azure Databricks см. раздел "Авторизация доступа пользователей к Azure Databricks с помощью OAuth" для получения токенов OAuth на уровне рабочей области.
Пользовательский интерфейс
Когда экземпляр базы данных имеет состояние Доступно, используйте интерфейс Azure Databricks для получения токена OAuth.
- Щелкните
Приложения в правом верхнем углу и выберите Lakebase Postgres.
- Щелкните «Подготовлено», чтобы открыть страницу «Подготовленные экземпляры».
- Найдите и щелкните имя экземпляра базы данных, для которого требуется получить маркер OAuth.
- Перейдите на вкладку сведений о подключении.
- Нажмите кнопку "Получить маркер OAuth". Флаг указывает, когда токен был создан.
- Нажмите «Копировать OAuthToken», чтобы скопировать токен в буфер обмена.
интерфейс командной строки (CLI)
Когда экземпляр базы данных имеет состояниедоступно, используйте интерфейс командной строки Databricks (CLI) версии 0.256.0 и выше, чтобы получить токен OAuth.
- Чтобы получить маркер, используйте следующую команду.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }' - Это создает ответ в следующем формате. Скопируйте
tokenиз ответа.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Дополнительные сведения об использовании интерфейса командной строки Databricks для получения маркера OAuth см. в разделе проверки подлинности OAuth пользователь-компьютер (U2M).
Пакет SDK для Python
Вы можете создать токен OAuth с помощью пакета SDK Databricks для Python. Привязки пакета SDK для Azure Databricks доступны в пакете SDK Databricks для Python версии 0.56.0.
Если вы работаете с более старой версией пакета SDK, сначала выполните эти команды.
%pip install --upgrade databricks-sdk
%restart_python
Пакет SDK Databricks для Python создает безопасный токен OAuth cred для экземпляра базы данных. Введите свои учетные данные, если это необходимо.
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])
пакет SDK для Java
Вы можете создать токен OAuth с помощью пакета SDK Databricks для Java. Привязки пакета SDK для баз данных доступны в пакете SDK Databricks для Java версии 0.53.0 или более поздней. Если вы работаете с более старой версией пакета SDK, может потребоваться обновить импортированный пакет SDK. Для получения дополнительных сведений см. здесь.
%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 в процессе авторизации между машинами
Чтобы обеспечить безопасный автоматизированный (машина-машина) доступ к экземпляру базы данных, необходимо получить токен OAuth с помощью служебного принципала Azure Databricks. Этот процесс включает настройку главного объекта службы, создание учетных данных и выпуск токенов OAuth для аутентификации.
Настройте учетную запись службы с бессрочными учетными данными. Инструкции см. в статье "Авторизация доступа субъекта-службы к Azure Databricks с помощью OAuth".
Выпустите новые токены OAuth в качестве учётной записи службы.
интерфейс командной строки (CLI)
Когда экземпляр базы данных имеет состояниедоступно, используйте интерфейс командной строки Databricks (CLI) версии 0.256.0 и выше, чтобы получить токен OAuth.
Чтобы получить маркер, используйте следующую команду.
databricks database generate-database-credential \ --request-id $(uuidgen) \ --json '{ "instance_names": ["db-instance-name"] }'Это создает ответ в следующем формате. Скопируйте
tokenиз ответа.{ "expiration_time": "2025-08-24T14:15:22Z", "token": "<string>" }
Пакет SDK для Python
Вы можете создать токен OAuth с помощью пакета SDK Databricks для Python. Привязки пакета SDK для Azure Databricks доступны в пакете SDK Databricks для Python версии 0.56.0.
Если вы работаете с более старой версией пакета SDK, сначала выполните эти команды.
%pip install --upgrade databricks-sdk %restart_pythonПакет SDK Databricks для Python создает безопасный токен OAuth
credдля экземпляра базы данных. Введите имя экземпляра базы данных, где это необходимо.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])пакет SDK для Java
Вы можете создать токен OAuth с помощью пакета SDK Databricks для Java. Привязки пакета SDK для баз данных доступны в пакете SDK Databricks для Java версии 0.53.0 или более поздней. Если вы работаете с более старой версией пакета SDK, может потребоваться обновление до более нового пакета SDK. Для получения дополнительных сведений см. здесь.
%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())
Замечание
Перед истечением почасового срока действия обновите токены OAuth.
- Проверьте время окончания срока действия токена OAuth каждый раз и обновите при необходимости.
- Кроме того, настройте фоновый поток для периодического обновления текущего маркера OAuth.
Устранение неполадок с идентификацией токена
Если удостоверение маркера не соответствует метке безопасности, вы можете получить сообщение об ошибке, подобное следующему.
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.
Выполните следующую команду, чтобы проверить, какое удостоверение Azure Databricks возвращается:
интерфейс командной строки (CLI)
databricks current-user me
Пакет SDK для Python
w.current_user.me().user_name
пакет SDK для Java
w.currentUser.me().getUserName()
Если ожидаемое удостоверение не возвращается, убедитесь, что при инициализации клиента рабочей области использовались правильные учетные данные.
Проверка подлинности с помощью идентификатора Microsoft Entra
Для Azure Databricks удостоверения и маркеры идентификаторов Microsoft Entra также можно использовать для проверки подлинности в API Azure Databricks. Используйте эти API-интерфейсы для получения токена для аутентификации в Postgres.
См. Управление пользователями, субъектами-службами и группами для управления управляемыми удостоверениями Microsoft Entra ID в Azure Databricks. Пользователи, группы и субъекты-службы из идентификатора Microsoft Entra можно создать в Azure Databricks. После добавления этих удостоверений в Azure Databricks их можно добавить в экземпляр базы данных, как описано в разделе "Управление ролями Postgres".
Чтобы получить токены Microsoft Entra ID, просмотрите следующее:
- Получение токенов Microsoft Entra для пользователей.
- Получение токенов Microsoft Entra ID для сервисных принципалов
Проверка подлинности в группе Azure Databricks
Членства в группах и группах не синхронизируются из Azure Databricks в Postgres и не являются разрешениями каталога Unity. Однако после добавления группы Azure Databricks в Postgres любой пользователь Azure Databricks в группе может войти в качестве группы с помощью пароля пользователя. Это позволяет управлять разрешениями на уровне группы в Postgres. Любой прямой или косвенный член (пользователь или субъект-служба) удостоверения группы Azure Databricks может пройти проверку подлинности в Postgres и войти в систему в качестве роли Azure Databricks group Postgres.
При проверке подлинности как группы с помощью токена пользователя или учетной записи службы членство в группах проверяется только во время проверки подлинности. Любое открытое соединение с маркером члена группы остается открытым, если член удаляется из группы после проверки подлинности. Любой новый запрос на подключение от удаленного члена группы отклоняется во время проверки подлинности.
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
Для входа Postgres на основе групп поддерживаются только группы, назначенные рабочей области Azure Databricks экземпляра базы данных. Сведения о назначении группы рабочей области см. в статье "Назначение группы рабочей области".
Проверка подлинности с помощью ролей и паролей Postgres
Если у вас есть клиенты, которые не поддерживают смену учетных данных через час, можно создать собственные роли Postgres с паролями:
Щелкните
Приложения в правом верхнем углу и выберите Lakebase Postgres.
Щелкните «Подготовлено», чтобы открыть страницу «Подготовленные экземпляры».
Выберите экземпляр базы данных, который требуется обновить.
Щелкните "Изменить " в правом верхнем углу.
Включите возможность входа с помощью собственной роли Postgres.
Нажмите кнопку Сохранить.
Войдите в Postgres или используйте редактор SQL, чтобы создать роль с паролем.
CREATE ROLE new_role LOGIN PASSWORD 'your strong password';Предоставьте дополнительные права Postgres новой роли. См. предоставление привилегий ролям Postgres с помощью PostgreSQL.
Дальнейшие шаги
Получив учетные данные (маркер OAuth или пароль), вы можете подключиться к экземпляру базы данных: