データベースとエンタープライズ ジオデータベースの権限の付与と取り消し

Standard または Advancedのライセンスで利用可能。

他のデータベース ユーザーがリレーショナル データベースまたはエンタープライズ ジオデータベースのデータの内容を表示または変更できるようにしたい場合は、そのための権限を付与する必要があります。

詳細:

エンタープライズ ジオデータベースおよびリレーショナル データベースの場合、データ所有者は、データセットが ArcGIS クライアントのツールで作成された場合に使用されるデータベース接続で指定されたユーザーによって決定されます。 データセットは、データベースまたはエンタープライズ ジオデータベース内のフィーチャクラス、テーブル、ビュー、およびエンタープライズ ジオデータベース内のフィーチャ データセットです。

データセットの所有者であれば、[権限] ダイアログ ボックス、[権限の変更 (Change Privileges)] ジオプロセシング ツール、または Python スクリプトの ChangePrivileges_management 関数を使用して、特定のデータセットに対するユーザーまたはグループの権限を指定できます。

データに対する SELECT 権限を付与すると、ユーザーはデータセットの内容の読み取りと選択はできますが、変更することはできません。 また、UPDATE、INSERT、DELETE の各権限を付与することもできます。この場合、ユーザーはデータセットの内容を変更することができます。

ArcGIS でのデータベースまたはエンタープライズ ジオデータベースのデータセットに対する権限の付与および取り消しには、次のルールが適用されます。

  • データセットの権限を変更できるのは、テーブルの所有者だけです。
  • データセットを削除したりそのスキーマ定義を変更したりできるのは、テーブル所有者だけです。そのため、別のユーザーがデータセットに対して INSERT、UPDATE、DELETE の権限を与えられていても、そのユーザーがスキーマを変更することはできません。
  • INSERT、UPDATE、DELETE の権限をユーザーに付与する場合、SELECT 権限も付与する必要があります。 ユーザーは、データセットを編集する前に、そのデータセットを読み取る必要があるからです。
  • Microsoft SQL Server データベースの [権限] ダイアログ ボックスの [ユーザー/ロール] リストには、dbo および db_owner ロールは表示されません。 これらのユーザーには、データベース内のすべてのデータに対する権限が付与されています。 権限はロールによって異なり、それらの権限を取り消すことはできません。
  • データベースでスーパーユーザー ステータスが付与された PostgreSQL のログイン ロールまたはグループは、[権限] ダイアログ ボックスの [ユーザー/ロール] リストには表示されません。 これらのユーザーは、すべてのデータに対してすべての権限が自動的に付与され、これらの権限を取り消すことはできません。
  • [権限] ダイアログ ボックスを使用してユーザーの権限を変更できるのは、一度に 1 つのデータセットだけです。 複数のデータセットの権限を一度に変更する場合は、代わりに [権限の変更 (Change Privileges)] ジオプロセシング ツールまたは ArcPy 関数を使用します。
  • 権限を取り消すには、データセットの排他ロックが必要です。 他のユーザーがデータセットに接続している場合、権限を取り消すことはできません。
  • ArcGIS を使用して、クラウド データ ウェアハウス内のテーブルに対する権限の付与および取り消しを行うことはできません。

エンタープライズ ジオデータベースのデータセットに対する権限の付与および取り消しには、次のルールのみが適用されます。

  • データセットがエンタープライズ ジオデータベース内にある場合は、以下に示す ArcGIS ツールを使用して権限の付与および取り消しを行います。 これにより、ユーザーは、データセットに関連付けられた必要なすべてのジオデータベース システム テーブルに確実にアクセスできるようになります。
  • フィーチャ データセット内のすべてのフィーチャクラスは、同じ権限が適用されている必要があります。
  • 1 つのリレーションシップ クラスに属するフィーチャクラスまたはテーブルに権限を付与するときには、関連元クラスと関連先クラスの両方に権限を付与する必要があります。 関連元フィーチャクラスに加えられた編集が関連先フィーチャクラスに影響する場合は、両方のフィーチャクラスに対して UPDATE、INSERT、DELETE の権限を付与する必要があります。

    関連元フィーチャクラスと関連先フィーチャクラスが同じフィーチャ データセット内にあるときは、どちらのフィーチャクラスも同じ権限のセットを持ちます。これは、権限がフィーチャ データセットのレベルで付与されるためです。 しかし、関連元クラスまたは関連先クラスが同じフィーチャ データセット内にないときは、両方のクラスに適切な権限が付与されるようにしなければなりません。 リレーションシップ クラスが属性付きか、多対多の基数を持つ場合は、関連元クラスに権限を付与したときに、中間テーブル (関連先クラスではない) に権限が自動的に反映されます。

  • データセットがバージョン対応登録されていない場合、[権限] ダイアログ ボックスを使用して、UPDATE、INSERT、DELETE の各権限の付与または取り消しを個別に行うことができます。 たとえば、ユーザーに SELECT と UPDATE 権限を付与すると、そのユーザーはデータセットを開いて既存のフィーチャを変更することはできますが、新しいフィーチャを追加したり、既存のフィーチャを削除したりすることはできません。
  • データセットがトラディショナル バージョニングで登録されている場合、データセットを変更できる権限 (UPDATE、INSERT、DELETE) をグループとして付与および取り消す必要があります。
  • データセットがトラディショナル バージョニングに登録されている場合、ジオデータベース管理者はそのデータセットに対して全権限を持つ必要があります。 したがって、それらのデータセットのジオデータベース管理者の権限を取り消すことはできません。
  • ブランチ バージョニングで登録されているデータセットは、Web フィーチャ レイヤーを通じてのみ編集でき、Web フィーチャ レイヤーの設定によってデータへのアクセスが制御されます。 データセットの所有者のみがブランチ バージョン対応データを公開できるため、ジオデータベース内のデータに対する権限を他のデータベース ユーザーに付与する必要はありません。

所有しているデータセットに対する権限の付与または取り消しを行うには、以下の方法のいずれかを使用します。

  • [権限] ダイアログ ボックス - [権限] ダイアログ ボックスを使用すると、ユーザーまたはグループが特定のデータセットに対して持っている権限を表示できます。 データセットに対する権限を、一度に複数のユーザーまたはグループに付与することもできます。
  • [権限の変更 (Change Privileges)] ツール - [権限の変更 (Change Privileges)] ジオプロセシング ツールを使用すると、複数のデータセットに対する権限をユーザーまたはグループに付与できます。
  • Python スクリプト - Python スクリプトを、ArcGIS Server がインストールされているコンピューターから実行できます。 複数のデータセットに対する権限を変更できます。

権限ダイアログ ボックスの使用

ArcGIS Pro[権限] ダイアログ ボックスを使用して権限の付与または取り消しを行うには、次の手順に従います。

  1. 所有しているデータのうち、権限の付与または取り消しの対象となるデータが含まれているリレーショナル データベースまたはエンタープライズ ジオデータベースに接続します。
  2. データセットを右クリックして、[権限] をクリックします。
  3. 権限を変更したいユーザーまたはロールがリスト内にある場合、付与または取り消しを行う権限のボックスをオン/オフにしてから、[OK] をクリックして変更を適用します。
    注意:

    すべての権限のボックスをオフにすると、そのユーザーまたはロールがリストから削除されます。

  4. ユーザーまたはロールがリストにない場合、次の操作を実行します。
    1. [ユーザーの追加] をクリックして、[ユーザー/ロール] ダイアログ ボックスを開きます。
    2. データベース内のすべてのユーザーおよびロールを表示するデータベース権限がある場合は、データベース ユーザーまたはロール名の横にあるチェックボックスをオンにすると、ユーザーまたはロールを追加できます。 この権限がない場合は、権限を付与するデータベース ユーザー、データベース ロール、オペレーティング システム ログイン、または Windows グループの名前を入力します。
    3. [OK] をクリックして、[ユーザー/ロール] ダイアログ ボックスを閉じます。
    4. 新しい各ユーザーまたはロールに必要な権限のボックスをオンにして、[OK] をクリックします。

権限の変更ツールの使用

[権限の変更 (Change Privileges)] ツールを使用して、所有しているデータセットに対する権限を付与または取り消すことができます。 このツールは、データ管理ツールボックスのジオデータベース管理ツールセットにあります。

このツールを使用して、一度に複数のデータセットに対するユーザーまたはグループの権限を変更できます。 指定したすべてのデータセットに対して同じ権限が付与されます。

[権限の変更 (Change Privileges)] ツールには、ユーザーがデータセットに対して持っている既存の権限は表示されません。 また、INSERT、UPDATE、および DELETE 権限はセットとして付与する必要があり、個別に付与することはできません。

  1. 権限の付与または取り消しの対象となるデータセットの所有者として、エンタープライズ ジオデータベースまたはリレーショナル データベースに接続します。
  2. [権限の変更 (Change Privileges)] ツールを開きます。
  3. データベース コネクションを参照し、データセットを選択します。
  4. データセットに対する権限を変更するユーザーまたはグループの名前を入力します。
  5. [表示] ドロップダウン リストおよび [編集] ドロップダウン リストを使用して、指定したユーザーまたはグループに付与する権限を選択します。

    [編集] 権限を選択する場合は、[表示] 権限も付与する必要があります。

  6. [OK] をクリックして、このツールを実行します。

Python スクリプトの使用

Python スクリプトを使用して、所有しているデータセットに対する権限の付与または取り消しを行う場合、ChangePrivileges_management 関数を使用します。

  1. CreateDatabaseConnection_management 関数を使用してデータベース コネクション (.sde ファイル) を作成します。

    データセットの所有者として接続し、ファイルにユーザー名を保存する必要があります。

  2. ChangePrivileges_management 関数を実行します。