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

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)] ジオプロセシング ツールまたは Python 関数を使用します。
  • 権限を取り消すには、データセットの排他ロックが必要です。 他のユーザーがデータセットに接続している場合、権限を取り消すことはできません。

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

  • フィーチャ データセット内のすべてのフィーチャクラスは、同じ権限が適用されている必要があります。
  • 1 つのリレーションシップ クラスに属するフィーチャクラスまたはテーブルに権限を付与するときには、関連元クラスと関連先クラスの両方に権限を付与する必要があります。 関連元フィーチャクラスと関連先フィーチャクラスが同じフィーチャ データセット内にあるときは、どちらのフィーチャクラスも同じ権限のセットを持ちます。これは、権限がフィーチャ データセットのレベルで付与されるためです。 しかし、関連元クラスまたは関連先クラスが同じフィーチャ データセット内にないときは、両方のクラスに適切な権限が付与されるようにしなければなりません。 リレーションシップ クラスが属性付きか、多対多の基数を持つ場合は、関連元クラスに権限を付与したときに、中間テーブルに権限が自動的に反映されます。
  • データセットがバージョン対応登録されていない場合、[権限] ダイアログ ボックスを使用して、UPDATE、INSERT、DELETE の各権限の付与または取り消しを個別に行うことができます。 たとえば、ユーザーに SELECT と UPDATE 権限を付与すると、そのユーザーはデータセットに接続して、既存のフィーチャを変更することはできますが、新しいフィーチャを追加したり、既存のフィーチャを削除したりすることはできません。
  • データセットがバージョン対応登録されている場合、データセットを変更できる権限 (UPDATE、INSERT、DELETE) をグループとして付与および取り消す必要があります。
  • データセットがトラディショナル バージョニングに登録されている場合、ジオデータベース管理者はそのデータセットに対して全権限を持つ必要があります。 したがって、それらのデータセットのジオデータベース管理者の権限を取り消すことはできません。

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

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

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

  1. 所有している権限を付与または取り消すデータを含む、データベースまたはジオデータベースに接続します
  2. データセットを右クリックして、[権限] をクリックします。
  3. 権限を変更したいユーザーまたはロールがリスト内にある場合、付与または取り消す権限のボックスをオン/オフにしてから、[OK] をクリックして変更を適用します。
    注意:

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

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

権限の変更 (Change Privileges)ツールの使用

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

このツールを使用して、一度に複数のデータセットに対するユーザーまたはグループの権限を変更できます。 [権限の変更 (Change Privileges)] ツールには、ユーザーがデータセットに対して持っている既存の権限は表示されないため、注意してください。 また、INSERT、UPDATE、および DELETE 権限は、個別にではなくセットとして付与する必要があります。

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

    編集権限を付与するには、表示権限も付与する必要があります。

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

Python スクリプトの使用

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

  1. CreateDatabaseConnection_management 関数を使用してデータベース接続を作成します。 データセットの所有者として接続し、ファイルにユーザー名を保存する必要があります。
  2. ChangePrivileges_management 関数を実行します。