PostgreSQL でのジオデータベースの権限

権限によって、データおよびデータベースに対してユーザーが許可される操作を決定します。 権限は、 このユーザーがジオデータベースの管理に関与するか、 データを編集または作成できる必要があるか、 データを検索できれば十分かといった、組織内でのユーザーの職務に基づいて割り当てる必要があります。

ユーザー権限は、さまざまなレベルで設定されます。このトピックでは、一般的なユーザー (データ参照者、データ編集者、データ作成者、およびジオデータベース管理者) に必要なデータベース権限およびデータセット権限を説明します。

PostgreSQL の個々のデータベース ユーザーは、ログイン ロールと呼ばれます。 ユーザーが実行する共通のタスクに基づいてログイン ロールをグループ化するには、グループ ロールを作成し、そのグループ ロールにログイン ロールを追加してから権限を割り当てるという方法があります。

注意:

データベースの CONNECT および TEMPORARY 権限は、デフォルトで PUBLIC グループ ロールに割り当てられます。 これらの権限を PUBLIC グループ ロールから削除する場合は、データベースに対する CONNECT および TEMPORARY 権限を明示的に特定のログイン ロールまたはグループ ロールに割り当てる必要があります。

ユーザー権限の管理には、pgAdmin など、PostgreSQL データベースに接続する管理アプリケーションを使用できます。 あるいは、SQL ステートメントを使用して、権限の追加と削除を行うこともできます。

ジオデータベースのデータセットの権限の付与や取り消しは、ArcGIS クライアントを使用して、データセット所有者が行う必要があります。

このページに表示される権限は、PostgreSQL のログイン ロールと ArcGIS がサポートする PostgreSQL データベース サービスに適用されます。

最小限の権限

以下の表に、一般的な 3 つのグループ (データ参照者、データ編集者、データ作成者) に付与される権限と、日常的な操作にジオデータベース管理者 (sde ログイン ロール) が最低限必要な権限をまとめます。

ユーザーの種類必要な権限目的

データ参照者

sde スキーマの USAGE 権限を付与します。

この権限で、ジオデータベースにアクセスできるようになります。

その他、データ参照者がアクセスする必要のあるデータを含むすべてのスキーマの USAGE を付与します。

この権限で、特定のスキーマのデータにアクセスできるようになります。

データベースが空間データの格納に PostGIS ジオメトリ タイプを使用している場合、ロールには PostGIS の spatial_ref_sys テーブルと geometry_columns ビューに対する SELECT 権限が必要です。

この権限は PostGIS ジオメトリ データにアクセスするために必要です。

データベースが空間データの格納に PostGIS ジオグラフィ タイプを使用している場合、ロールには PostGIS の spatial_ref_sys テーブルと geography_columns ビューに対する SELECT 権限が必要です。

この権限は PostGIS ジオグラフィ データにアクセスするために必要です。

特定のデータセットの SELECT を付与します。

データの所有者は、データ参照者がデータにアクセスできるように、ジオデータベースのテーブルとフィーチャクラスに対する SELECT 権限をデータ参照者に付与する必要があります。

データ編集者

データ編集者には、データ参照者に必要な権限に加えて、次の追加の権限が必要です。

他のユーザーが所有しているデータセットに対する SELECT、INSERT、UPDATE、DELETE

ArcGIS を使用して、従来のバージョン対応登録されたフィーチャクラスまたはテーブルに対する SELECT、INSERT、UPDATE、および DELETE 権限を付与すると、関連するバージョン対応ビューに対してこれらの権限が自動的に付与されます。 これらの権限は、ユーザーが SQL およびバージョン対応ビューを使用して編集する際に必須です。

データ所有者は、ジオデータベース内のデータの編集に必要な権限を編集者に付与する必要があります。 データ所有者は、これらの権限を任意に組み合わせ編集者に付与できます。

データ作成者

データ作成者には、データ参照者に必要な権限に加えて、次の追加の権限が必要です。

データを作成する各ログイン ロールには、その独自のスキーマに対する AUTHORIZATION が必要です。 スキーマ名はログイン ロール名と一致する必要があることと、グループ ロールはスキーマを共有できないことに注意してください。

AUTHORIZATION により、そのスキーマで作成されたすべてのオブジェクトをそのユーザーが所有することになります。

ジオデータベース管理者 (sde ログイン ロール)

sde という独自のスキーマでの認証。

sde ログイン ロールには、他のすべてのユーザー スキーマの USAGE が必要です。

ジオデータベースのシステム テーブル、関数、およびプロシージャは、sde スキーマに格納されます。

他のユーザー スキーマの USAGE は、sde ユーザーがジオデータベースを圧縮するために必要です。

PostgreSQL の権限の表

ジオデータベースの作成またはアップグレードに必要な権限

ジオデータベースの作成とアップグレードに sde ログインに必要な権限、および他のオプションの管理タスクの実行に必要な権限を次の表で説明します。 ArcGIS がサポートする PostgreSQL の実装の各タイプの権限を次の表に示します。

ジオデータベースの作成ジオデータベースのアップグレード他の管理者の操作
PostgreSQL

ログインとスーパーユーザー ステータス

スーパーユーザー ステータスは、他のすべてのユーザーのスキーマにアクセスできる機能と、ジオデータベース内のすべてのデータセットに対する SELECT 権限を持っています。

sde ユーザーは、ArcGIS ツールを使用してPostgreSQL のスーパーユーザー ステータスを必要とします。 sde ユーザーが接続を削除できないようにする場合は、ジオデータベースの作成またはアップグレード後に、スーパーユーザー ステータスを取り消します。

Amazon Relational Database Service (RDS) for PostgreSQL

ログインと rds_superuser ステータス

ログインと rds_superuser ステータス

sde ユーザーには、ジオデータベース内のデータを所有するすべてのロールを付与する必要もあります。

たとえば、ロール gisdata1 と gisdata2 がジオデータベース内のデータを所有している場合、アップグレードの前にこれらのロールを sde に付与する必要があります。

grant gisdata1 to sde;

grant gisdata2 to sde;

ジオデータベースをアップグレードした後に、sde からこれらのロールを取り消します。

sde ユーザーがジオデータベースを作成またはアップグレードした後に、sde から rds_superuser を取り消すことができます。

ただし、[データベース ユーザーの作成 (Create Database User)] ジオプロセシング ツールを使用してデータベースにデータ所有者を作成する場合は、sde から rds_superuser を取り消さないで、このジオプロセシング ツールを sde ユーザーとして実行してください。

Amazon Aurora (PostgreSQL-compatible edition)

ログインと rds_superuser ステータス

ログインと rds_superuser ステータス

sde ユーザーがジオデータベースを作成またはアップグレードした後に、sde から rds_superuser を取り消すことができます。

ただし、[データベース ユーザーの作成 (Create Database User)] ジオプロセシング ツールを使用してデータベースにデータ所有者を作成する場合は、sde から rds_superuser を取り消さないで、このジオプロセシング ツールを sde ユーザーとして実行してください。

Microsoft Azure Database for PostgreSQL

ログイン

GRANT pgazureadmin TO sde;

ログイン

GRANT pgazureadmin TO sde;

sde ユーザーがジオデータベースを作成またはアップグレードした後に、sde から pgazureadmin を取り消すことができます。

Google Cloud SQL for PostgreSQL

sde ユーザーには cloudsqlsuperuser を付与する必要があります。

sde ユーザーには cloudsqlsuperuser を付与する必要があります。

sde ユーザーがジオデータベースを作成またはアップグレードした後に、sde から cloudsqlsuperuser を取り消すことができます。