問題タブ [audit-logging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 監査証跡のプル レコード
アプリケーションに監査証跡を実装しています。私はこれに従い、これにより、監査のみが必要なテーブルである履歴テーブルが作成されました。
患者情報を保存する次のテーブルがあります。
TenantIdは、マルチテナント アプリケーションであるため、各テナント データを表します。
Person
とPatient
テーブル
人
Id、TenantId、FirstName、LastName、DOB、Mobile、Eメール、AddedBy、UpdatedBy、IsDeleted
忍耐強い
Id、PatientIDentifier、IsOP、CanSendSMS、AddedBy、UpdatedBy、IsDeleted
また別のテーブル
予定
Id、PatientId、AppointmentDate、DoctorId、Price、AddedBy、UpdatedBy
監査履歴表の構造
人物歴
AuditId、Id、FirstName、LastName、DOB、AddedBy、UpdatedBy、AuditUserId、AuditDate、Action
ここでAction
表すA(ADD)/U(update)/D(delete)
同じ構造が作成されましたPatient, Appointment
これで、追加/削除/更新が発生するたびに履歴テーブルに挿入するトリガーが得られました。
これで、監査履歴テーブルで使用できるデータを取得できました。
2 つの要件のクエリを作成する必要があります。
特定の患者のすべてのレコードを取得します。を使用して、PatientHostory、AppointmentHistory、PersonHistory からすべてのレコードを取得する必要があり
PatientId
ます。特定の ID に対して同じテーブルからより多くのレコードを取得する SQL を作成するにはどうすればよいですか?UNION or JOIN
?からすべてのレコードを取得する必要があります
all the HistoryTable for the supplied AuditUser Id
。
これに対するクエリを作成するにはどうすればよいですか?
c# - Entity Framework 6で監査ログのエンティティからIDを取得する方法
同様の投稿がいくつかあることは知っていますが、この問題の解決策を見つけることができません。
Entity Framework 6 でエンティティを追加、変更、または削除 (ソフト削除) するときに、(一種の) AudioLog を追加したいと考えています。 SaveChanges を初めて呼び出す前に、リストをフェッチします。問題は、実行された操作をログに記録する必要があるため、エンティティの EntityState を検査する必要があることです。ただし、SaveChanges が呼び出された後は、すべてのエントリの EntityState が Unchanged になります。
ruby - Padrino のモデルで current_account にアクセスするには?
メインアプリと管理アプリを持つ Padrino アプリケーションに取り組んでいます。ユーザーがセッション経由でログインするときは、次の 2 行を実行してログインします。
管理者の任意のコントローラーでデバッガーを使用
全機種デバッガ付き
どのユーザーが管理アプリにログインしているかを調べるために current_account にアクセスできますが、この変数はメイン アプリではアクセスできません。
私がやろうとしているのは、すべてのモデルに対してアクティビティ フィード (監査証跡) を作成しているため、モデルでレコードが作成/更新/破棄されると、モデル アクティビティで新しいレコードが作成されることです。そうは言っても、モデルの current_account 変数にアクセスする必要があります。
解決策を探したところ、次のような提案がありました。
admin/app.rb 内
app/app.rb 内
私にはうまくいきませんでした。モデルで current_account にアクセスする方法はありますか?
ガイドや提案をありがとう。
sql - ROW に 3 つの UPDATE があるのに、AFTER UPDATE トリガーが 1 回だけ起動されるのはなぜですか?
db テーブル Foo に AFTER UPDATE トリガーがあります。Foo で UPDATE が発生するたびに、監査レコードを Audit テーブルに INSERTS します。
実行中の 3 つの個別のサービスがあり、同じ Foo レコードを更新することがありますが、フィールドは異なります。
問題は、同じ行に 3 つの UPDATE がある場合です。これはほぼ同時に発生しているようです。AFTER UPDATE トリガーが 1 つしか起動されていないことがわかります。3 と予想されるところに 1 つの監査レコードしか表示されません。
なぜこれが起こるのかアドバイスはありますか?
php - wordpress管理者への通知メールを取得する方法
wordpress wp-adminから何かを更新したときにwordpress管理者に通知メールを受け取る方法
c# - Entity Framework: 監査証跡の外部キーが変更されたときに基になるエンティティの種類を取得する
私は現在、エンティティの個々のプロパティへの変更をログに記録する必要があるプロジェクトに取り組んでいます。エンティティの多くは、ルックアップ値の型と 1 対多の関係を持っており、これが変更された場合、これまでのところ、「1」が「2」に変更されたことを追跡できます。私が達成しようとしているのは、数値をより読みやすい値に変換することです。
私は動作すると思っていた以下のコードを持っていますが、動作しません:(
エンティティ フレームワークを使用した監査について説明している多くの投稿を見てきましたが、これまでのところ、私がやろうとしていることを達成する方法は見つかりませんでした。単に何かを見落としているからだと思います。
どんな助けでも大歓迎です。
session - Hibernate IPreUpdateEventListener が 2 番目のテーブルに挿入されない
簡単な監査ログ機能のプロトタイプを作成しています。私は中規模のエンティティ モデル (~50 エンティティ) を持っており、監査ログを約 5 または 6 に実装したいと考えています。最終的には、これを挿入と削除でも機能させたいと考えていますが、今のところアップデートを中心に。
問題は、EventListener 内から auditLog テーブルに session.Save (または SaveOrUpdate) を実行すると、元のオブジェクトは正しく保持 (更新) されますが、AuditLog オブジェクトが挿入されないことです。
セッションがまだ使用されているために、NHibernate セーブ ライフ サイクルの後半に呼び出されるイベント リスナーPre
とイベント リスナーの両方に問題があると思います。Post
最後のメソッドで session.SaveOrUpdate() にヒットすると、エラーは発生しません。例外はスローされません。それは成功したようで、先に進みます。しかし、何も起こりません。監査ログ エントリがデータベースに表示されることはありません。
これを機能させてこのメソッド内に完全に新しいセッションとトランザクションを作成することができた唯一の方法ですが、コードがリスナーメソッドから戻ってセッションにヒットするため、これは実際には理想的ではありません.Transactionメインアプリで .Commit() を実行し、そのトランザクションが失敗した場合、監査テーブルに孤立したログメッセージがあり、決して起こらなかったことを示しています。
私が間違っている可能性のあるポインタはありますか?
編集
また、このスレッドのいくつかのコメントに基づいて、イベントの子セッションを使用して LogItem を SaveOrUpdate しようとしました。http://ayende.com/blog/3987/nhibernate-ipreupdateeventlistener-ipreinserteventlistener
データベースのログテーブルにはまだ何も表示されません。エラーや例外はありません。