フィーチャ サービスの編集情報の記録
フィーチャ サービスでは、誰がいつデータを変更したかを記録できます。この情報は、データセットのフィールドに直接保存されます。
編集情報の記録は、ArcGIS Server でフィーチャクラスおよびテーブルに対する編集を追跡するために利用できる、ArcGIS for Desktop の機能です。編集情報の記録は、ArcGIS for Desktop を使用して有効にします。
- カタログ ツリーで、フィーチャクラスまたはテーブルを右クリックし、[管理] → [編集情報の記録を有効化] の順にクリックします。
- 表示されるメッセージを確認して、[はい] をクリックします。編集情報を追跡するためのフィールドが自動的に作成され(存在していない場合)、編集情報の記録が有効になります。
データセットごとに、編集情報の記録を設定する必要があります。一部のレイヤについてのみ編集情報の記録を有効化したフィーチャ サービスを作成することができます。
編集情報の記録を使用するフィーチャ サービスを作成すると、ArcGIS for Desktop で定義したフィールドに、編集者に関する情報が自動的に記録されます。誰がデータを作成または編集したかを記録している場合、アプリケーションは、この情報のトークンを取得するためにある時点で ArcGIS Server の認証情報を要求する必要があります。このトークンは、誰がリクエストを出しているかを伝えるために、フィーチャ サービスへのリクエストに追加されます。
作成者の記録が有効なフィーチャ サービスに認証されていないユーザがアクセスした場合は、新しいフィーチャの作成者フィールドまたは日付の値が空のままになり、前回の編集者の編集者フィールドと日付値が空に設定されます。
編集情報の記録を使用するシナリオ
編集情報の記録には、次のような用途があります。
説明責任と品質管理
誰がいつ編集を行ったかの記録は、データベースに追加するフィーチャの説明責任と品質管理を徹底するために役立ちます。前回の編集者と、(必要に応じて)最終編集日を記録すれば、現在のデータセット ビューを誰が編集したかがわかります。アーカイブをオンにすると(バージョニングが必要)、フィーチャの削除および作成者も含めて、編集の全履歴が得られます。
アプリケーションの要件に応じて、フィーチャの作成者と作成日がこのシナリオで価値がある場合とない場合があります。
時間による記録の変化
また、作成日と現在までの編集日を記録することで、全体的な傾向と、いつどのように修正されているかがわかります。アーカイブをオンにする場合は、これらの要件のために編集の記録も行う必要はありません。
所有権ベースのアクセス制御
フィーチャを作成したユーザだけがそのフィーチャにアクセスできるように、アクセスを制限することができます。そのためには、作成者フィールドを設定し、サービスがフィーチャの作成者を基準にしてアクセスを受け入れるよう構成します。詳細については、「フィーチャ サービスでの所有権ベースのアクセス制御」をご参照ください。
Web およびデスクトップ クライアントの編集情報の記録
編集情報の記録を有効にして Web アプリケーションでレイヤを編集する作業は、編集情報の記録を有効にしない場合と何も変わりません。フィーチャ サービスでレイヤをどのように作成したかによって、クライアントが編集情報の記録フィールドを参照できないか、読み取り専用で参照できるかが決まります。編集情報がクライアントから送信された場合は、編集を行った Web ユーザを含む情報が入ります。どのフィールドをオンにしているかによって、Web ユーザ、およびデータベースに変更が適用された UTC の日付が記録フィールドに書き込まれます。作成者フィールドと作成日フィールドは、挿入の場合にのみ設定され、決して変更されません。
統合セキュリティ モデルの使用
必要に応じて、フィーチャ サービスで統合セキュリティ モデルを実装できます。このモデルでは、ArcGIS for Desktop の編集者が Web アプリケーションでも同じ編集者として認識されます。これにより、たとえば Bob という名前のユーザが、デスクトップ セッションか Web 編集アプリケーションで編集を行ったときに、両方の環境でデータベースに同じ編集者を記録することができます。これを可能にするには、ArcGIS for Desktop と ArcGIS Server で同じログイン情報を使用し、サービスで(以下で説明する)ユーザのレルムを指定しないようにします。
ローカル編集コマンドの使用
フィーチャ サービスでは、ローカル編集コマンドによってオプションの編集を実行できます。ローカル編集コマンドでは、データの複製コピー(子レプリカ)がサーバからデスクトップ クライアントに書き込まれます。クライアントはローカル コピーを編集して、変更内容をサーバに戻して同期させます。サーバに書き込まれる編集者と編集日付はそれぞれ、サーバにログインして同期を実行したユーザと、編集が実行された日付です。ローカル デスクトップの編集セッションに記録されているユーザは、サーバでは無視されます。
編集情報の記録とタイム ゾーン
REST を通してフィーチャ サービスを操作している場合は、すべての日付が UTC で記録されます。フィーチャクラスに関する編集情報の記録を有効にするときは、UTC で編集を記録するように設定されていることを確認してください。フィーチャ サービスは、編集情報の記録のタイム ゾーンとして、データベース時間に対応していません。
編集情報の記録でのレルムの使用
編集情報の記録では、編集を行うユーザの名前にレルム(@esri.com など)を追加するかどうかを選択できます。ArcGIS Server を使用していない場合でも、これは役に立ちます。たとえば、デンバー オフィスとシアトル オフィスに同じ名前のユーザ John がいる場合、それぞれの編集作業を John@denver および John@seattle として記録すれば、どちらの John が編集したのかわかります。
ArcGIS Server での編集内容にレルムを追加することもできます。セキュリティで保護されたフィーチャ サービスにアクセスすると、ArcGIS Server はユーザ名を記憶し、それを編集情報の記録を有効にして行ったすべての編集に適用します。ArcGIS Server は、フィーチャ サービスで設定したすべてのレルムも追加します。
たとえば、ユーザ Mary が ArcGIS Server にログインして編集を行う場合を考えます。作成者はジオデータベースに Mary として設定されます。レルム @server を使用するようにフィーチャ サービスを設定すると、それ以降の編集は Mary@server という名前でデータベースに表示されます。
フィーチャ サービスにレルムを設定する手順は次のとおりです。
ArcGIS Server Manager での手順
- Manager を開き、ログインします。この手順のヘルプについては、「ArcGIS Server Manager へのログイン」をご参照ください。
- [サービス] → [サービスの管理] の順にクリックします。
- [サービス] モジュールで、フィーチャ サービスの名前をクリックします。リスト内にサービスが表示されていない場合は、[サイト(ルート)] ディレクトリのフォルダ内にあります。
- [編集] モジュールで、[ケーパビリティ] をクリックします。
- [フィーチャ アクセス] をクリックします(チェックボックスをオフにしないように注意してください)。
- [プロパティ] セクションで、[高度な設定] をクリックします。
- [編集の適用時にユーザ名をレルムで修飾] を選択します。
- デフォルトのレルムを使用するか、独自の修飾子を適用するかを選択します。
- [OK] をクリックします。
ArcGIS for Desktop
- カタログ ツリーで [GIS Servers] ノードを展開します。
- ArcGIS Server への管理者接続をダブルクリックします。接続方法については、「ArcGIS for Desktop での ArcGIS Server への管理者接続の作成」をご参照ください。
- フィーチャ サービスの関連マップ サービスを右クリックし、[サービス プロパティ] を選択します。
- [サービス エディタ] ダイアログ ボックスで、[フィーチャ アクセス] タブをクリックします。
- [高度な設定] をクリックします。
- [フィーチャ サービスの高度な設定] ウィンドウで、[編集を適用するときにユーザ名に realm を追加する] を選択します。
- デフォルトのレルムを使用するか、独自の修飾子を適用するかを選択します。
- [OK] をクリックします。
サーバは、ログインしたユーザの名前にレルムが含まれることを検出すると、独自のレルムを追加しません。
データベースとサーバ ドメインの間でユーザをマップすることができます。ユーザが ArcGIS for Desktop でジオデータベースを直接編集する必要がある場合、およびフィーチャ サービスを通じて Web 上でも編集を行う場合にこの機能を使用できます。両方の環境で同じユーザをログに記録できます。このためのワークフローは次のとおりです。
- ArcGIS for Desktop と ArcGIS Server の両方でログインが一致するアカウントを設定します。
- 同じレルムを使用するか、レルムをまったく使用しないようにデータベースとサーバを設定します。