メインコンテンツまでスキップ

クイックスタート

OAuth トークンまたは Postgres パスワードを使用してデータベースに接続します。Lakebase インフラストラクチャの管理 (プロジェクト、ブランチ、コンピュートの作成) については、 「プロジェクトの権限」を参照してください。

認証方法を選択してください​

接続する前に、ユースケースに最適な認証方法を決定します。

  • OAuth ロール: OAuth トークンを使用して Databricks ID を使用して認証します。プロジェクトオーナーはすぐに接続できます。他の Databricks ID が OAuth 認証を使用できるようにするには、Lakebase UI、SQL、または REST API を使用して Postgres ロールを作成します。「OAuth ロールの作成」を参照してください。
  • ネイティブ Postgres パスワード認証: 従来のデータベース パスワードを使用して Postgres ロールで認証します。「ネイティブ Postgres パスワード ロールを作成する」を参照してください。

OAuth は、自動資格情報の有効期限とワークスペース ID の統合を提供しますが、長時間実行されるアプリケーションではトークンのローテーションが必要です。Postgres のパスワードには有効期限はなく、ローテーションも必要ありませんが、OAuth の自動有効期限と集中型セキュリティ管理機能はありません。

認証フロー

データベースに接続する​

パブリックインターネット経由で接続する場合、クライアント側のファイアウォールを使用しているときは、Lakebaseで使用されるIPアドレスを許可リストに追加してください。Databricks サービスの IP アドレスとドメインを参照してください。

以下の例では、標準の Postgres クライアントであるpsql使用します。psql を使用して接続する方法の詳細については、 「psql を使用した接続」を参照してください。また、 Databricks 、Lakebase SQLエディター、テーブル エディター、または pgAdmin やその他の Postgres 互換クライアントなどのサードパーティ ツールを通じてデータベースにアクセスすることもできます。 その他のオプションについては、 「データのクエリ」を参照してください。

各プロジェクトには、接続できるdatabricks_postgresという名前のデフォルトのデータベースが含まれています。このデータベースは、プロジェクトの作成時に自動的に作成される、Databricks ID の Postgres ロール (たとえば、 user@databricks.com ) によって所有されます。追加の Postgres ロールを作成するには、 「Postgres ロールの管理」を参照してください。

注記

すべてのデータベース接続には、24 時間のアイドル タイムアウトと最大 3 日間の接続寿命が適用されます。「接続タイムアウト」を参照してください。

OAuthロールで接続する​

OAuth ロールを使用すると、トークンベースの認証で Databricks ID を使用して接続できます。プロジェクトオーナーの OAuth ロールは自動的に作成されます。他の Databricks ID が OAuth 認証を使用できるようにするには、Lakebase UI、SQL、または REST API を使用して Postgres ロールを作成します。「OAuth ロールの作成」を参照してください。

OAuthローンをプログラムまたは自動ワークフローで生成するには、対話型セッションの場合はユーザーからマシンへのフローでOAuthローンを取得する、またはサービスプリンシパルの場合はマシンからマシンへのフローでOAuthローンを取得するを参照してください。

重要

OAuth トークンは 1 時間後に期限切れになります。

長時間実行されるデータベース接続を維持するアプリケーションの場合、資格情報の有効期限が切れる前に自動的に更新するトークンのローテーションを実装する必要があります。トークンのローテーションを行わないと、アプリケーションは 1 時間後にデータベース接続を失います。

コード例については、トークンのローテーションの例を参照してください。

OAuth ロールで接続するには:

  1. Lakebase アプリからプロジェクトを選択し、 「接続」 をクリックします。

  2. 接続するブランチ、コンピュート、データベースを選択し、[ ロール] ドロップダウン メニューの OAuthロール] セクションからDatabricks ID を選択します。

  3. OAuthトークンのコピー をクリックし、ターミナルでトークンをPGPASSWORD環境変数にエクスポートします。

    Bash
    export PGPASSWORD='<oauth-token>'
  4. スニペットの上のドロップダウンメニューから psql を選択してから、スニペットをターミナルにコピーしてランします。psqlはPGPASSWORDからトークンを読み取るため、パスワードの入力を求められません。それでもプロンプトが表示される場合は、 OAuth接続のトラブルシューティングを参照してください。

OAuthトークンは、生成されてから1時間で有効期限が切れます。トークンの有効期限が切れた後に再接続するには、新しいトークンをコピーし、再度PGPASSWORDにエクスポートします。

ロールドロップダウンが開き、OAuth ロールセクションが表示された接続モーダル

注記

Copy OAuthトークン はサービスプリンシパルや他のユーザーではなく、現在のログイン ID に対してのみパスワードを生成します。 他の ID のトークンを生成するには、 CLI または SDK を使用します。

OAuth 接続のトラブルシューティング​

  • パスワードプロンプトでトークンを貼り付けると、psqlが応答しなくなります。 OAuthトークンは長いため、一部の端末では対話型プロンプトで貼り付けるとpsqlが応答しなくなります。前のステップで説明したように、psqlを実行する前にトークンをPGPASSWORDにエクスポートします。

  • PGPASSWORDが設定されていても、psqlでパスワードが要求されます。 環境内の他のPostgres設定がPGPASSWORDよりも優先される場合があります(シェルプロファイルによって設定される接続サービスファイルなど)。これらの設定に関係なく接続するには、接続文字列にトークンを追加します。シェルで変数を展開できるように、ダブルクォーテーションを使用してください:

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

    根本的な原因を修正するには、env | grep '^PG'をランしてPGSERVICEまたはPGSERVICEFILE変数をチェックします。いずれかが設定されている場合は、現在のセッションでそれらを解除します。

    Bash
    unset PGSERVICE PGSERVICEFILE

    新しいセッションで変数が戻らないようにするには、シェルプロファイル ( ~/.bashrc や ~/.zshrc など) からそれらを設定する export 行を削除します。

ネイティブPostgresパスワードで接続する​

ネイティブ Postgres パスワード認証を使用すると、従来のデータベース パスワードを使用して Postgres ロールに接続できます。

ネイティブ Postgres パスワード認証で接続するには:

  1. Lakebase アプリからプロジェクトを選択し、 「接続」 をクリックします。
  2. 接続するブランチ、コンピュート、データベースを選択し、 [ロール] ドロップダウン メニューの [Postgres ロール] セクションから Postgres ロールを選択します。
  3. 上のドロップダウンメニューから psql を選択し、スニペットをターミナルにコピーして実行し、接続します。

Postgres ロール接続ダイアログ

注記

Lakebaseは、ネイティブ Postgres パスワード ロール用の接続プーラーが組み込まれています。 高スループットアプリケーションの接続オーバーヘッドを削減するには、 「接続プーリングを使用する」を参照してください。

その他のリソース​