役割を管理する
Postgres ロールは、Postgres データベース、スキーマ、テーブル、およびその他のデータベース オブジェクトへのアクセスを制御します。Lakebase UI を使用して、チームの役割を作成および管理します。
役割の概要
プロジェクトを作成すると、Databricks ID に対して Postgres ロールが自動的に作成されます (例: user@databricks.com )。このロールはデフォルトのdatabricks_postgresデータベースを所有し、 databricks_superuserのメンバーであるため、データベース オブジェクトを管理するための広範な権限が与えられます。プロジェクトのデフォルト ブランチまたは子ブランチに追加のロールを作成できます。
PostgreSQLのロール状態は、ブランチ間で独立しています。 ブランチを作成すると、ブランチ作成時点における親ブランチのPostgresロール、データベース、ロールメンバーシップ、および権限が反映されます。分岐後、各ブランチは独立して進化します。あるブランチで作成されたロールやデータベース、適用されたGRANTやREVOKE、変更されたロール属性やメンバーシップは、親ブランチを含め、他のどのブランチにも影響を与えません。ブランチ間で役割の状態を自動的に同期する機能はありません。
プロジェクトの権限 (使用許可、 CAN MANAGE )は仕組みが異なり、プロジェクト全体とそのすべてのブランチに適用されます。 プロジェクト権限の管理を参照してください。
ロールを作成する
Lakebase アプリの [ロールの追加] ダイアログを使用して、Databricks ID の OAuth ロールまたはネイティブの Postgres パスワード ロールを作成します。
OAuthロールを作成する
OAuthロールはDatabricks ID (ユーザー、サービス プリンシパル、またはグループ) にリンクされ、 OAuthセキュリティを使用して認証されます。OAuth ロールは 1 時間後に期限切れになります。
子ブランチを作成すると、ブランチ作成時点における親ブランチの役割とデータベースの状態が反映されます。その後、各ブランチの役割状態は独立して変化していく。グループに関しては、ワークスペースレベルのグループのみがサポートされています。
オプションで、 databricks_superuser ( pg_read_all_data 、 pg_write_all_data 、 pg_monitorを継承)または標準のPostgres属性( CREATEDB 、 CREATEROLE 、 BYPASSRLS )を付与します。PostgreSQL ドキュメントの「ロール属性」を参照してください。
OAuth ロールを作成するには、 「ロールとデータベース」 > 「ロールの追加」 > 「OAuth」 タブに移動し、 「プリンシパル」 ドロップダウンから ID を選択し、権限を構成して、 「追加」 をクリックします。

SQL または REST API でdatabricks_auth拡張機能を使用して OAuth ロールを作成することもできます。「Postgres ロールの作成」を参照してください。
パスワードロールを作成する
パスワード ロールは静的な Postgres パスワードを使用し、Databricks ID にはリンクされません。従来のデータベース資格情報を必要とするアプリケーションやツールに役立ちます。
Lakebase アプリは安全なパスワードを自動的に生成します。作成後すぐにコピーします。再度表示されることはありません。カスタムパスワードが必要な場合は、後で SQL を使用して設定します。OAuth ロールからの同じオプションの権限が適用されます ( databricks_superuser 、 CREATEDB 、 CREATEROLE 、 BYPASSRLS )。ロール名は有効な Postgres 識別子である必要があり、63 文字を超えることはできません。
パスワード ロールを作成するには、 [ロールとデータベース] > [ロールの追加] > [パスワード] タブに移動し、ロール名を入力して権限を構成し、 [追加] をクリックして、生成されたパスワードをコピーします。

役割を表示
ブランチ内のすべてのロールを表示するには、Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。

パスワード接続を管理する
新しい Lakebase Autoscaling プロジェクトでは、パスワード接続はデフォルトで無効になっています。既存のプロジェクトは、このデフォルトの影響を受けません。
パスワード接続を有効にするには、プロジェクトの**設定**> **データベース接続**に移動し、**パスワード(Native Postgres roles)**をチェックします。
パスワード接続を無効にするには、プロジェクトの「設定」>「データベース接続」に移動し、「パスワード (Postgresネイティブロール)」のチェックを外します。 既存のパスワードロールは削除されませんが、パスワード接続が無効になっている間は認証できません。
これをコンピュートエンドポイントごとに制御することもできます。ブランチのコンピュート設定で、 編集 > データベース接続 を選択し、 パスワード(Postgres ロール) をオンにするかオフにします。

これは動作の変更です。新しいLakebaseオートスケールプロジェクトを作成し、ネイティブのPostgresパスワード接続に依存する自動化スクリプトまたはCIパイプラインをお持ちの場合は、プロジェクト作成後にパスワード接続を明示的に有効にする必要があります。
パスワード接続をプログラムによって有効化または無効化するには:
- CLI
- Python SDK
- curl
# Enable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
--json '{"spec": {"enable_pg_native_login": true}}'
# Disable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
--json '{"spec": {"enable_pg_native_login": false}}'
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import FieldMask, Project, ProjectSpec
w = WorkspaceClient()
# Enable password connections
w.postgres.update_project(
name="projects/<project-id>",
project=Project(spec=ProjectSpec(enable_pg_native_login=True)),
update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()
# Disable password connections
w.postgres.update_project(
name="projects/<project-id>",
project=Project(spec=ProjectSpec(enable_pg_native_login=False)),
update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()
# Enable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"spec": {"enable_pg_native_login": true}}' | jq
# Disable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"spec": {"enable_pg_native_login": false}}' | jq
認証については、「認証について」を参照してください。
パスワードをリセットする
ネイティブ Postgres パスワード ロールのパスワードをリセットできます。OAuth ロールは認証に OAuth トークンを使用し、リセットするパスワードはありません。
ロールのパスワードをリセットするには:
- Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。
- ロールメニューから 「パスワードのリセット」 を選択し、 「リセット」 をクリックします。
- 新しく生成されたパスワードをコピーします。
Lakebase アプリでパスワードをリセットする パスワードを 60 ビット エントロピーで生成された値にリセットします。 独自のパスワード値を設定するには、次の構文を使用して、 SQL エディターまたは psql などの SQL クライアントを使用してパスワードをリセットできます。
ALTER USER user_name WITH PASSWORD 'new_password';
パスワードは、小文字、大文字、数字、記号を組み合わせた 12 文字以上である必要があります。ユーザー定義のパスワードは、60 ビットのエントロピーを確保するために作成時に検証されます。
新しいOAuthトークンを取得する
OAuth認証を使用しており、新しいOAuthトークン (トークンは 1 時間後に期限切れになります) が必要な場合は、Connect モーダルから取得できます。
- Lakebase アプリでプロジェクトに移動します。
- 「接続」を クリックすると、データベース接続モーダルが開きます。
- 「ロール」 ドロップダウンから OAuth ロールを選択します。
- OAuthトークンをコピー] をクリックして、新しいトークンをコピーします。
詳細: OAuth ロールで接続する|認証について
役割を削除する
ロールの削除は元に戻すことのできない永続的なアクションであり、データベースを所有するロールを削除することはできません。データベースを所有するロールを削除する前に、データベースを削除する必要があります。
ロールを削除するには:
- Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。
- ロールメニューから 「ロールの削除」 を選択し、削除を確認します。
データベース ロールを管理するには、 CAN MANAGE または CAN USE プロジェクト権限が必要です。必要な権限がない場合は、ロール関連のアクションを実行しようとすると「権限が必要です」というメッセージが表示されます。アクセスをリクエストするには、ワークスペース管理者に連絡してください。詳細については、 「プロジェクト権限の管理」を参照してください。