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 の使用:
- Lakebase アプリで、ブランチの概要ページに移動し、ブランチの [ロールとデータベース] タブに移動します。
- [ロールの追加] をクリックし、ロール名 (有効な Postgres ロール名) を指定します。

- 作成 をクリックします。
- 生成されたパスワードをコピーし、このロールを使用するユーザーに安全に提供します。
Lakebase UI は、60 ビットのエントロピーを使用して安全なパスワードを自動的に生成します。UI を通じて作成されたロールには、広範なデータベース権限を提供するdatabricks_superuserロールのメンバーシップが自動的に付与されます。
SQL の使用:
標準の Postgres SQL コマンドを使用してネイティブの Postgres パスワード ロールを作成することもできます。
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 ロールを作成するには:
- 
databricks_auth拡張機能を作成します。各 Postgres データベースには独自の拡張子が必要です。SQLCREATE EXTENSION IF NOT EXISTS databricks_auth;
- 
databricks_create_role関数を使用して、Databricks ID の Postgres ロールを作成します。SQLSELECT databricks_create_role('identity_name', 'identity_type');Databricks ユーザーの場合: SQLSELECT databricks_create_role('myuser@databricks.com', 'USER');Databricksサービスプリンシパルの場合: SQLSELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');
- 
新しく作成されたロールにデータベース権限を付与します。 
databricks_create_role()関数は、 LOGIN権限のみを持つ Postgres ロールを作成します。ロールを作成した後、ユーザーがアクセスする必要がある特定のデータベース、スキーマ、またはテーブルに対して適切なデータベース権限とアクセス許可を付与する必要があります。方法を学ぶ:権限を管理する
ロール名は 63 文字を超えることはできず、一部の名前は許可されません。詳細:役割の管理
Postgres のロールを表示
- UI
- PostgreSQL
プロジェクト内のすべての Postgres ロールを表示するには、Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。システム ロールを除く、ブランチで作成されたすべてのロールが、パスワード認証を使用するネイティブ Postgres ロールも含めて一覧表示されます。

\duコマンドですべてのロールを表示します:
任意の Postgres クライアント ( psqlなど) または Lakebase SQL エディターから\duメタコマンドを使用して、システム ロールを含むすべての Postgres ロールを表示できます。
\du
                                      List of roles
          Role name          |                         Attributes
-----------------------------+------------------------------------------------------------
 cloud_admin                 | Superuser, Create role, Create DB, Replication, Bypass RLS
 my.user@databricks.com      | Create role, Create DB, Bypass RLS
 databricks_control_plane    | Superuser
 databricks_gateway          |
 databricks_monitor          |
 databricks_reader_12345     | Create role, Create DB, Replication, Bypass RLS
 databricks_replicator       | Replication
 databricks_superuser        | Create role, Create DB, Cannot login, Bypass RLS
 databricks_writer_12345     | Create role, Create DB, Replication, Bypass RLS
これにより、すべてのロールとその属性 (スーパーユーザー、ロールの作成、DB の作成など) が表示されます。
Postgresロールを削除する
Databricks ID ベースのロールとネイティブの Postgres パスワード ロールの両方を削除できます。
- UI
- PostgreSQL
ロールの削除は元に戻すことのできない永続的なアクションです。データベースを所有するロールは削除できません。データベースを所有するロールを削除する前に、データベースを削除する必要があります。
UI を使用して Postgres ロールを削除するには:
- Lakebase アプリでブランチの [ロールとデータベース] タブに移動します。
- ロールメニューから 「ロールの削除」 を選択し、削除を確認します。
標準の Postgres コマンドを使用して、任意の Postgres ロールを削除できます。詳細については、ロールの削除に関する PostgreSQL のドキュメントを参照してください。
役割を削除します。
DROP ROLE role_name;
Databricks ID ベースのロールを削除すると、新しいロールが作成されるまで、その ID は OAuth トークンを使用して Postgres に対して認証できなくなります。
事前に作成されたロール
データベース プロジェクトが作成されると、Databricks はプロジェクト管理と開始のために Postgres ロールを自動的に作成します。
| ロール | 説明 | 継承された権限 | 
|---|---|---|
| 
 | プロジェクト作成者の Databricks ID (例:  | メンバー  | 
| 
 | 内部管理の役割。プロジェクト全体のアクセスを構成および管理するために使用されます。このロールには広範な権限が付与されます。 | 
 | 
これらのロールの特定の機能と権限の詳細については、以下を参照してください:事前に作成されたロールの機能
Databricksによって作成されたシステムロール
Databricks は、内部サービスに必要な次のシステム ロールを作成します。これらのロールは、 psqlまたはLakebase SQL エディターから\duコマンドを発行することで表示できます。
| ロール | 目的 | 
|---|---|
| 
 | クラウド インフラストラクチャ管理に使用されるスーパーユーザー ロール | 
| 
 | 管理操作のために内部 Databricks コンポーネントによって使用されるスーパーユーザー ロール | 
| 
 | 内部メトリクス収集サービスによって使用される | 
| 
 | データベースのレプリケーション操作に使用される | 
| 
 | 同期されたテーブルの作成と管理に使用されるデータベースごとのロール | 
| 
 | Unity Catalogに登録されたテーブルを読み取るために使用されるデータベースごとのロール | 
| 
 | マネージドデータ配信サービスの内部接続に使用されます | 
Postgres でのロール、権限、およびロール メンバーシップの仕組みについては、Postgres ドキュメントの次のリソースを参照してください。
次のステップ
- 権限の管理- Postgres ロールにデータベース権限を付与する
- データベース プロジェクトに接続します- OAuth トークンまたは Postgres パスワードを使用して接続します
- 認証- OAuthパスワードと Postgres パスワードの仕組みを理解する