すべてのプロダクト
Search
ドキュメントセンター

Hologres:簡易権限モデル (SPM)

最終更新日:Aug 23, 2026

このトピックでは、Hologres の簡易権限モデル (SPM) について説明します。

背景情報

Hologres は PostgreSQL と互互換性があり、PostgreSQL 標準権限モデルを使用できます。詳細については、「エキスパート権限モデル」をご参照ください。PostgreSQL 標準権限モデルでは、権限が厳密に分割されています。このモデルは、実際のビジネスシナリオで使用するには複雑であり、次のような典型的な課題があります。

  • ユーザーに権限を付与する場合、大量の権限付与ステートメントを実行する必要があります。

  • ロールごとに必要な権限が異なるため、権限付与が煩雑になります。また、ユーザーに権限を付与する際に権限付与ステートメントが不足していると、ユーザーは対応する操作を実行できません。

  • 新しいユーザーごとに同じ権限付与ステートメントを実行する必要があり、時間がかかります。

  • Hologres は参考用に PostgreSQL の標準的な権限付与ステートメントを提供していますが、ユーザーの操作習慣によっては、さまざまな権限に対して適切な権限付与ステートメントを実行できない場合があります。これにより、権限管理が混乱し、ビジネスにリスクをもたらすとともに、管理、時間、利用のコストが増加する可能性があります。

上記の課題を解決するために、Hologres は PostgreSQL 標準権限モデルをベースに、粗粒度で権限を管理する簡易権限モデルを開発しました。簡易権限モデルは、データベースレベルで権限を管理し、admin、developer、writer、viewer のロールを提供します。これらのロールを使用することで、少数の関数を用いて、便利かつ安全な方法でデータベース内のオブジェクトに対する権限を管理できます。

簡易権限モデルの概要

簡易権限モデルは、各データベースに次のロールを提供します。

  • {db}_admin:データベース管理者

  • {db}_developer:デベロッパー

  • {db}_writer:読み書き担当者

  • {db}_viewer:アナリスト

次の表は、各ロールの権限を示しています。

ロール

権限

{db}_admin

  • データベース管理者。

  • {db}_developer、{db}_writer、{db}_viewer グループの権限を持ちます。

  • データベースを所有し、データベースを削除する権限を持ちます。

  • {db}_admin、{db}_developer、{db}_writer、{db}_viewer グループのメンバーを追加および削除する権限を持ちます。

  • データベース内のスキーマなどのオブジェクトを照会、追加、変更、削除する権限を持ちます。

  • データベースの設定を変更する権限を持ちます。

{db}_developer

  • データベースデベロッパー。

  • {db}_writer と {db}_viewer グループの権限を持ちます。

  • データベース内のすべてのスキーマにおける、テーブル、外部テーブル、ビューなどのテーブル状のオブジェクト、および関数、プロシージャ、外部サーバー、外部データラッパー、型、言語を含む、すべての非システムオブジェクトを所有します。さらに、デベロッパーはすべてのスキーマのテーブルを照会、追加、変更、削除できます。

  • すべてのスキーマに対する USAGE 権限と CREATE 権限を持ち、すべての非システムスキーマでテーブル、ビュー、外部テーブルを作成するデータ定義言語 (DDL) ステートメントを実行できます。

{db}_writer

  • データベースの読み書き担当者。

  • {db}_viewer グループの権限を持ちます。

  • すべてのスキーマにおける、すべてのテーブル、外部テーブル、およびビューなどのテーブル状のオブジェクトに対して SELECT、INSERT、UPDATE、DELETE ステートメントを実行する権限を持ちます。

  • データベース内のすべてのスキーマを照会する権限を持ちます。

  • データベースのデベロッパーが所有する、関数、プロシージャ、外部サーバー、外部データラッパー、型、言語を含むすべてのオブジェクトにアクセスし、使用する権限を持ちます。

  • すべてのスキーマに対する USAGE 権限を持ちますが、DDL ステートメントは実行できません。

{db}_viewer

  • データベースアナリスト。

  • すべてのスキーマにおける、すべてのテーブル、外部テーブル、およびビューなどのテーブル状のオブジェクトに対して SELECT 権限を持ちます。

  • データベースのデベロッパーが所有する、関数、プロシージャ、外部サーバー、外部データラッパー、型、言語を含むすべてのオブジェクトにアクセスし、使用する権限を持ちます。

  • すべてのスキーマに対する USAGE 権限を持ちます。