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

Postgresのロールを管理する

備考

ベータ版

Lakebase Postgres (オートスケール Beta) は、 Lakebase の次のバージョンであり、評価のみに利用できます。 本番運用ワークロードの場合は、 Lakebase Public Previewを使用します。 どのバージョンが適しているかを判断するには、バージョンの選択を参照してください。

データベース プロジェクトを作成すると、Lakebase によってプロジェクト内にいくつかの Postgres ロールが作成されます。

  • プロジェクト所有者の Databricks ID の Postgres ロール (例: user@databricks.com )。これはデフォルトのdatabricks_postgresデータベースを所有します。
  • databricks_superuser管理者ロール

databricks_postgresデータベースが作成されるので、プロジェクトの作成後すぐに Lakebase に接続して試すことができます。

システム管理ロールもいくつか作成されます。これらは、管理、モニタリング、データ操作のためにDatabricksサービスによって使用される内部ロールです。

詳細:事前作成されたロールシステムロール

Postgresロールを作成する

Lakebase は、データベース アクセス用に 2 種類の Postgres ロールをサポートしています。

  • ネイティブ Postgres パスワード ロール: Lakebase UI または SQL を使用して作成します。パスワード認証では有効なロール名を使用します。
  • Databricks ID の OAuth ロール: databricks_auth拡張機能と SQL を使用して作成します。他の Databricks ID が OAuth トークンを使用して接続できるようにします。

認証方法の詳細については、認証を参照してください。

ネイティブのPostgresパスワードロールを作成する

Lakebase UI または標準 SQL コマンドを使用して、ネイティブ Postgres パスワード ロールを作成できます。

UI の使用:

  1. Lakebase アプリで、ブランチの概要ページに移動し、ブランチの [ロールとデータベース] タブに移動します。
  2. [ロールの追加] をクリックし、ロール名 (有効な Postgres ロール名) を指定します。

Postgresロールを追加する

  1. 作成 をクリックします。
  2. 生成されたパスワードをコピーし、このロールを使用するユーザーに安全に提供します。

Lakebase UI は、60 ビットのエントロピーを使用して安全なパスワードを自動的に生成します。UI を通じて作成されたロールには、広範なデータベース権限を提供するdatabricks_superuserロールのメンバーシップが自動的に付与されます。

SQL の使用:

標準の Postgres SQL コマンドを使用してネイティブの Postgres パスワード ロールを作成することもできます。

SQL
CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';

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

SQL を使用して Databricks ID の OAuth ロールを作成する

他のDatabricks ID (ユーザー、サービスプリンシパル、またはグループ) がOAuthブラウザを使用して接続できるようにするには、 databricks_auth拡張機能を使用して Postgres ロールを作成する必要があります。

前提条件:

  • データベースに対するCREATEおよびCREATE ROLE権限が必要です
  • 有効なOAuthでDatabricks IDとして認証される必要があります。
  • ネイティブPostgres認証セッションではOAuthロールを作成できません

OAuth ロールを作成するには:

  1. databricks_auth拡張機能を作成します。各 Postgres データベースには独自の拡張子が必要です。

    SQL
    CREATE EXTENSION IF NOT EXISTS databricks_auth;
  2. databricks_create_role関数を使用して、Databricks ID の Postgres ロールを作成します。

    SQL
    SELECT databricks_create_role('identity_name', 'identity_type');

    Databricks ユーザーの場合:

    SQL
    SELECT databricks_create_role('myuser@databricks.com', 'USER');

    Databricksサービスプリンシパルの場合:

    SQL
    SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');
  3. 新しく作成されたロールにデータベース権限を付与します。

databricks_create_role()関数は、 LOGIN権限のみを持つ Postgres ロールを作成します。ロールを作成した後、ユーザーがアクセスする必要がある特定のデータベース、スキーマ、またはテーブルに対して適切なデータベース権限とアクセス許可を付与する必要があります。方法を学ぶ:権限を管理する

注記

ロール名は 63 文字を超えることはできず、一部の名前は許可されません。詳細:役割の管理

Postgres のロールを表示

プロジェクト内のすべての Postgres ロールを表示するには、Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。システム ロールを除く、ブランチで作成されたすべてのロールが、パスワード認証を使用するネイティブ Postgres ロールも含めて一覧表示されます。

Postgres のロールを表示

Postgresロールを削除する

Databricks ID ベースのロールとネイティブの Postgres パスワード ロールの両方を削除できます。

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

UI を使用して Postgres ロールを削除するには:

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

事前に作成されたロール

データベース プロジェクトが作成されると、Databricks はプロジェクト管理と開始のために Postgres ロールを自動的に作成します。

ロール

説明

継承された権限

<project_owner_role>

プロジェクト作成者の Databricks ID (例: my.user@databricks.com )。このロールはデフォルトのdatabricks_postgresデータベースを所有し、プロジェクトにログインして管理できます。

メンバー databricks_superuser

databricks_superuser

内部管理の役割。プロジェクト全体のアクセスを構成および管理するために使用されます。このロールには広範な権限が付与されます。

pg_read_all_datapg_write_all_datapg_monitorから継承します。

これらのロールの特定の機能と権限の詳細については、以下を参照してください:事前に作成されたロールの機能

Databricksによって作成されたシステムロール

Databricks は、内部サービスに必要な次のシステム ロールを作成します。これらのロールは、 psqlまたはLakebase SQL エディターから\duコマンドを発行することで表示できます。

ロール

目的

cloud_admin

クラウド インフラストラクチャ管理に使用されるスーパーユーザー ロール

databricks_control_plane

管理操作のために内部 Databricks コンポーネントによって使用されるスーパーユーザー ロール

databricks_monitor

内部メトリクス収集サービスによって使用される

databricks_replicator

データベースのレプリケーション操作に使用される

databricks_writer_<dbid>

同期されたテーブルの作成と管理に使用されるデータベースごとのロール

databricks_reader_<dbid>

Unity Catalogに登録されたテーブルを読み取るために使用されるデータベースごとのロール

databricks_gateway

マネージドデータ配信サービスの内部接続に使用されます

Postgres でのロール、権限、およびロール メンバーシップの仕組みについては、Postgres ドキュメントの次のリソースを参照してください。

次のステップ