注意:
この機能は、エンタープライズ ジオデータベースにのみ使用できます。データベースには使用できません。
各フィーチャの作成者についての情報を記録するようフィーチャ サービスを構成することができます。 また、フィーチャを所有していないユーザーによるフィーチャへのアクセスを制限することもできます。 これは、所有権ベースのアクセス制御と呼ばれます。
所有権ベースのアクセス制御を使用するには、作成者名を保持するデータセット内のフィールドを指定する必要があります。 次に、[編集情報の記録] の設定を変更し、そのフィールドを [作成者フィールド] として指定します。 このプロセスの手順については、「フィーチャ サービスの編集情報の記録」をご参照ください。
サービスを公開して [フィーチャ アクセス] ケーパビリティをオンにする場合は、[フィーチャで所有権ベースのアクセス制御を有効にする] プロパティもオンにします。 続いて、[他のユーザーが作成したフィーチャで許可される操作] (検索、更新、および削除) を選択して、作成者以外のユーザーが行える操作を指定することもできます。 作成者は、一般的にサービスで許可されているすべての操作を実行できます。
検索をオフにすると、ログインしたユーザーが参照できるのは自分で作成したフィーチャのみになりますので、ご注意ください。 反対に、検索をオンにして更新と削除をオフにすると、ユーザーは、他のユーザーが所有するフィーチャを検索できますが、読み取りしかできなくなります。
所有権ベースのアクセス制御は、フィーチャの作成しているユーザーやアクセスしているユーザーに関する情報をサービスが取得できる場合のみ、機能できます。 クライアント アプリケーションでは、開発者は、ユーザーに ArcGIS Server の認証情報を入力するよう要求する必要があります。 次に、開発者はこの情報を使用して、ArcGIS Server からトークンを取得します。 ユーザー情報を含む暗号化されたトークンは、リクエストの際に、フィーチャ サービスに渡される必要があります。
あるユーザーが匿名のリクエストからフィーチャを作成すると (つまり、リクエストにユーザー情報が含まれていない場合)、作成者フィールドは空のままになり、誰でもそのフィーチャにアクセスできます。
注意:
フィーチャ サービスを介して行われた匿名ユーザーの編集は、ジオデータベースに Esri_Anonymous として記録されますが、これらの値は、フィーチャ サービスを利用するクライアントには空の文字列として表示されます。 REST Services Directory でフィーチャ サービスを検索して、匿名ユーザーが作成したフィーチャを探す場合は、「Esri_Anonymous」を指定する必要があります。 たとえば、フィーチャ レイヤーに created_by という名前の作成者フィールドが含まれている場合は、[Where] フィールドに「created_by='Esri_Anonymous'」と入力します。
編集のためにオフラインになっているマップで使用されているフィーチャ サービスの場合、マップをオフラインにしたユーザーの名前を使用して編集情報が記録され、このユーザーに基づいてアクセス制御が実施されます。 所有権ベースのアクセス制御は、ArcGIS Server 管理者には適用されない点に注意してください。管理者には完全な権限があります。
サービス内の一部のデータセットに作成者フィールドが指定されていない場合、それらのデータセットに対して所有権ベースのアクセス制御は実施されません。 所有権ベースのアクセス制御を有効にするチェックボックスをオンにして、作成者フィールドを指定した場合、公開のためにマップを分析すると警告が表示されることがあります。 「フィーチャ サービスのエディター権限」で説明しているように、作成者フィールドがないレイヤーおよびテーブルでは、サービス レベルで設定された権限ルールが使用されます。
Web 編集者
所有権ベースのアクセス制御を設定する際に、ユーザー レルムを指定できます。 たとえば、ユーザー レルムが「myserver.com」に設定され、Bob というユーザーがサービスを介してフィーチャを接続および挿入すると、作成者は「Bob@myserver.com」に設定されます。
所有権ベースのアクセス制御ルールは、サービスを介して編集を実行する管理者以外の Web 編集者に有効です。
ヒントとベスト プラクティス
所有権ベースのアクセス制御オプションは、サービス レベルですべてのユーザーに許可されている操作に限られている点に注意することも重要です。 たとえば、サービス レベルの更新および削除操作をオフになっていると、所有権ベースのアクセス制御の設定でも更新および削除操作がオフになっています。
サービスを公開する際は、すべてのレイヤーとテーブルで作成者フィールドを表示したままにすることをお勧めします。 これにより、クライアントは、ある所定のフィーチャを作成したユーザーが誰かを知ることができます。 クライアントは、この情報を使用して、ユーザーが編集権限を持たないフィーチャを編集しようとするのを防ぎます。 作成者フィールドが非表示になっていると、フィーチャ サービスを利用しているクライアントは、所定のフィーチャを作成したユーザーがわかりません。 クライアントが権限のないフィーチャを編集しようとすると、エラーが返されます。
編集情報の記録と所有権ベースのアクセス制御の違いに注意することが重要です。 データセット レベルでレイヤーに編集情報の記録が設定されていると、所有権ベースのアクセス ルールが実施されているかどうかにかかわらず、フィーチャ サービスによって編集情報が記録されます。 ただし、所有権ベースのアクセス ルールを設定するには、データセット レベルの編集情報の記録が必要です。
認証されなていユーザーが編集を行った場合、作成者または編集者のフィールド値は未入力のままになります。 所有権ベースのアクセス制御が有効な場合は、すべてのユーザーがフィーチャを編集できます。 所有権ベースのアクセス制御が有効で作成者が Null の場合、フィーチャまたはレコードは読み取り専用で、フィーチャを編集することはできません。 サービスの作成者は、読み取り専用にしたいフィーチャの作成者が Null になるようデータを構成できます。