none
レコードアクセスの履歴について RRS feed

  • 質問

  • お世話になります。

    特定ユーザーエンティティのレコードアクセス履歴について、

    現在、アクセス履歴記録用のフィールドを用意して、

    レコードにアクセスした際に、そのフィールドにユーザー名と日時を追記して記録を残していますが、

    レコードにアクセスした時点でアクセス履歴が更新され、レコードに変更が発生するので上書き保存処理を行っております。

    上記とは別な方法でレコードにアクセスした際の履歴を確認する方法はありますでしょうか。


    • 編集済み rias.crm 2018年9月7日 8:44
    2018年9月6日 8:33

回答

  • こんにちは。

    履歴といえば「監査」機能が真っ先に思い浮かんだのですが、レコードへのアクセスだけでは履歴を残せないようですね…。

    質問者様の現在の方法だと、ユーザがアクセスする度に上書き保存処理が実行されてレコードの更新者と更新日も変わってしまうので、私だったらアクセス履歴エンティティを別途作成して、OnLoad時にログインユーザの情報とアクセス日をアクセス履歴エンティティのレコードに格納する方法で実装すると思います。

    最終アクセス者だけを記録すればいいのであれば、アクセス履歴エンティティにあらかじめレコードを作成しておいて、毎回そのレコードに更新をかければ現在の実装をほぼ踏襲できますし、アクセス時の上書き保存処理や更新者、更新日の変更も行われなくなります(そもそもレコードアクセス時に「上書き保存」しているのであれば、アクセス履歴記録用フィールドに記録されたユーザ名と日時って、レコードの更新者、更新日と完全に一致することになるので、そうなるとアクセス履歴記録用フィールドは不要なのでは?という議論になってくるかと)。

    これを機に最終アクセス者以外の履歴も残していきたいのであれば、アクセス履歴エンティティに毎回レコードを作成する方法で実現が可能です。ただしこちらの方法だ処理が若干重くなるのと、アクセス履歴エンティティに相当数のレコードが作成されてしまうことになるので、履歴を残す対象のエンティティやユーザを絞ったり、レコードの一括削除ジョブを設定して1週間経過したレコードは夜間に消してしまう等といったケアが必要になるかと思います。

    あとは設置型であれば、IISログを確認する方法もありますね。

    2018年9月6日 8:57

すべての返信

  • こんにちは。

    履歴といえば「監査」機能が真っ先に思い浮かんだのですが、レコードへのアクセスだけでは履歴を残せないようですね…。

    質問者様の現在の方法だと、ユーザがアクセスする度に上書き保存処理が実行されてレコードの更新者と更新日も変わってしまうので、私だったらアクセス履歴エンティティを別途作成して、OnLoad時にログインユーザの情報とアクセス日をアクセス履歴エンティティのレコードに格納する方法で実装すると思います。

    最終アクセス者だけを記録すればいいのであれば、アクセス履歴エンティティにあらかじめレコードを作成しておいて、毎回そのレコードに更新をかければ現在の実装をほぼ踏襲できますし、アクセス時の上書き保存処理や更新者、更新日の変更も行われなくなります(そもそもレコードアクセス時に「上書き保存」しているのであれば、アクセス履歴記録用フィールドに記録されたユーザ名と日時って、レコードの更新者、更新日と完全に一致することになるので、そうなるとアクセス履歴記録用フィールドは不要なのでは?という議論になってくるかと)。

    これを機に最終アクセス者以外の履歴も残していきたいのであれば、アクセス履歴エンティティに毎回レコードを作成する方法で実現が可能です。ただしこちらの方法だ処理が若干重くなるのと、アクセス履歴エンティティに相当数のレコードが作成されてしまうことになるので、履歴を残す対象のエンティティやユーザを絞ったり、レコードの一括削除ジョブを設定して1週間経過したレコードは夜間に消してしまう等といったケアが必要になるかと思います。

    あとは設置型であれば、IISログを確認する方法もありますね。

    2018年9月6日 8:57
  • westcoastline様

    ご返答ありがとうございます。

    運用状況としては、1日の対象エンティティの新規作成レコード数が数百で、ある程度処理速度も求められる状況です。

    アクセス履歴の意図としては、レコード作成者以外の職員も内容を確認しているかチェックする為です。

    その為、最終アクセス者だけではなく、アクセスした全てのユーザー及び日時を記録しています。

    現在は運用環境ではなく、テスト環境で検証している状況です。

    ご提案頂きました、アクセス履歴エンティティを別途作成し、定期的に削除する方法で検証してみます。

    ありがとうございました。


    • 編集済み rias.crm 2018年9月7日 8:47
    2018年9月7日 8:44