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

役割を管理する

Postgres ロールは、Postgres データベース、スキーマ、テーブル、およびその他のデータベース オブジェクトへのアクセスを制御します。Lakebase UI を使用して、チームの役割を作成および管理します。

注記

ロールを操作する前に、データベースに接続し、OAuth トークンまたはネイティブの Postgres パスワード認証を使用して認証する方法を確認してください。

役割の概要

プロジェクトを作成すると、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_superuserpg_read_all_datapg_write_all_datapg_monitorを継承)または標準のPostgres属性( CREATEDBCREATEROLEBYPASSRLS )を付与します。PostgreSQL ドキュメントの「ロール属性」を参照してください。

OAuth ロールを作成するには、 「ロールとデータベース」 > 「ロールの追加」 > 「OAuth」 タブに移動し、 「プリンシパル」 ドロップダウンから ID を選択し、権限を構成して、 「追加」 をクリックします。

ロールの追加 - OAuth タブ

注記

SQL または REST API でdatabricks_auth拡張機能を使用して OAuth ロールを作成することもできます。「Postgres ロールの作成」を参照してください。

パスワードロールを作成する

パスワード ロールは静的な Postgres パスワードを使用し、Databricks ID にはリンクされません。従来のデータベース資格情報を必要とするアプリケーションやツールに役立ちます。

Lakebase アプリは安全なパスワードを自動的に生成します。作成後すぐにコピーします。再度表示されることはありません。カスタムパスワードが必要な場合は、後で SQL を使用して設定します。OAuth ロールからの同じオプションの権限が適用されます ( databricks_superuserCREATEDBCREATEROLEBYPASSRLS )。ロール名は有効な Postgres 識別子である必要があり、63 文字を超えることはできません。

パスワード ロールを作成するには、 [ロールとデータベース] > [ロールの追加] > [パスワード] タブに移動し、ロール名を入力して権限を構成し、 [追加] をクリックして、生成されたパスワードをコピーします。

ロールの追加 - パスワードタブ

役割を表示

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

役割リスト

パスワード接続を管理する

新しい Lakebase Autoscaling プロジェクトでは、パスワード接続はデフォルトで無効になっています。既存のプロジェクトは、このデフォルトの影響を受けません。

パスワード接続を有効にするには、プロジェクトの**設定**> **データベース接続**に移動し、**パスワード(Native Postgres roles)**をチェックします。

パスワード接続を無効にするには、プロジェクトの「設定」>「データベース接続」に移動し、「パスワード (Postgresネイティブロール)」のチェックを外します。 既存のパスワードロールは削除されませんが、パスワード接続が無効になっている間は認証できません。

これをコンピュートエンドポイントごとに制御することもできます。ブランチのコンピュート設定で、 編集 > データベース接続 を選択し、 パスワード(Postgres ロール) をオンにするかオフにします。

データベース接続設定

重要

これは動作の変更です。新しいLakebaseオートスケールプロジェクトを作成し、ネイティブのPostgresパスワード接続に依存する自動化スクリプトまたはCIパイプラインをお持ちの場合は、プロジェクト作成後にパスワード接続を明示的に有効にする必要があります。

パスワード接続をプログラムによって有効化または無効化するには:

Bash
# 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}}'

パスワードをリセットする

ネイティブ Postgres パスワード ロールのパスワードをリセットできます。OAuth ロールは認証に OAuth トークンを使用し、リセットするパスワードはありません。

ロールのパスワードをリセットするには:

  1. Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。
  2. ロールメニューから 「パスワードのリセット」 を選択し、 「リセット」 をクリックします。
  3. 新しく生成されたパスワードをコピーします。
注記

Lakebase アプリでパスワードをリセットする パスワードを 60 ビット エントロピーで生成された値にリセットします。 独自のパスワード値を設定するには、次の構文を使用して、 SQL エディターまたは psql などの SQL クライアントを使用してパスワードをリセットできます。

SQL
ALTER USER user_name WITH PASSWORD 'new_password';

パスワードは、小文字、大文字、数字、記号を組み合わせた 12 文字以上である必要があります。ユーザー定義のパスワードは、60 ビットのエントロピーを確保するために作成時に検証されます。

新しいOAuthトークンを取得する

OAuth認証を使用しており、新しいOAuthトークン (トークンは 1 時間後に期限切れになります) が必要な場合は、Connect モーダルから取得できます。

  1. Lakebase アプリでプロジェクトに移動します。
  2. 「接続」を クリックすると、データベース接続モーダルが開きます。
  3. 「ロール」 ドロップダウンから OAuth ロールを選択します。
  4. OAuthトークンをコピー] をクリックして、新しいトークンをコピーします。

詳細: OAuth ロールで接続する|認証について

役割を削除する

重要

ロールの削除は元に戻すことのできない永続的なアクションであり、データベースを所有するロールを削除することはできません。データベースを所有するロールを削除する前に、データベースを削除する必要があります。

ロールを削除するには:

  1. Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。
  2. ロールメニューから 「ロールの削除」 を選択し、削除を確認します。
注記

データベース ロールを管理するには、 CAN MANAGE または CAN USE プロジェクト権限が必要です。必要な権限がない場合は、ロール関連のアクションを実行しようとすると「権限が必要です」というメッセージが表示されます。アクセスをリクエストするには、ワークスペース管理者に連絡してください。詳細については、 「プロジェクト権限の管理」を参照してください。