問題タブ [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.

0 投票する
3 に答える
2051 参照

php - データベースで実行されたアクティビティを記録する方法は?-MySQL / PHP

データベースで実行されたすべてのアクションの監査に使用される新しいテーブルをデータベースに作成することにしました。

私のテーブル「アクティビティ」はかなり単純で、次の列が含まれています。

  • activity_id-主キー
  • user_id-ユーザーの外部キー
  • アクション-実行されているクエリのタイプ(SELECT、UPDATE、DELETE)
  • table-影響を受けるテーブルの名前
  • 行-影響を受ける行の名前

現在私が行っているのは、クエリが実行されたときに、「アクティビティ」テーブルに情報を挿入する別のクエリが後にあります。

コード:

ご覧のとおり、クエリごとに手動でこれを行う必要があり、システムには100を超えるクエリがあり、何が起こったかを記録するために個々のクエリを入力する必要はありません。

実行されたアクションを教えてくれるMySQLの機能はありますか、それともPHPに役立つライブラリやテクニックはありますか?

または、システムに100個の個別のクエリを書き出す運命にありますか?

ありがとう

0 投票する
1 に答える
1096 参照

grails - Grails onLoad() 監査

grails-audit プラグインが onCreate() onUpdate() イベントをログに記録する方法を提供していることがわかりますが、onLoad() イベントも追跡する必要があります。

プラグインを使用してそれを行う標準的な方法はありますか? それとも自分で実装する必要がありますか?

0 投票する
2 に答える
1659 参照

grails - grailsで監査ログプラグインを使用する

grailsで監査ログプラグインを使用することを計画していて、基本的なことを知りたいだけです。
監査ドメインクラスを作成し、ドメインクラスからのさまざまなイベントに関するデータをこのテーブルに手動で永続化する必要がありますか?
プラグインがドメインを作成せず、永続化しないことを意味します。しかし、それが監査データを保存するための標準的な方法でしょうか?また
、監査ログに次のようなエントリが必要な場合

「ユーザーsamは「timestamp」で「IP」からログインし、ユーザーgeorgeを更新しました」

"onLoad"ドメイン内のイベントでそれを処理する必要がありますか?

また、次のような単純なイベントをどのように追跡しますか

「ユーザーRitaが「Timestamp」にログインしました」

ありがとう

0 投票する
1 に答える
309 参照

grails - ユーザー ログインの監査ログ エントリの挿入

監査ログ プラグインを使用して grails 1.3.7 を使用しています。「user:PSam Logged in at ..」のようなユーザー ログイン イベントをログに記録したいのですが、プラグインにはonLoadイベントが定義されていないため、それをドメイン クラスに追加し、このイベントに独自の監査テーブル エントリを入力します。したがって、grails ユーザー ドメイン クラスでは、次のようにします。

ここで 2 つの問題が発生しています... 1) このドメイン クラスで属性として定義されたユーザー名プロパティが null として表示されます 2) 次のような例外がスローされます。No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here

ここで取るべき別のアプローチはありますか?また、プラグインの audi_log テーブルを使用して onLoad() イベント エントリを設定できますか?

前もって感謝します

0 投票する
2 に答える
239 参照

sql - SQL でクエリを作成する際に助けが必要ですか?

私は6つのテーブルを持っています:

回答する質問: 製品 ID を指定して、その製品のレコードを削除します。製品が削除されると、関連するすべての FAQ がデータベースに残る可能性がありますが、ProductID フィールドには null 参照が含まれている必要があります。ただし、製品を削除すると、関連するチケットとその更新も削除されます。完全を期すために、削除されたチケットとその更新は、製品、チケット、および更新に関する履歴データを保持する監査テーブルまたは一連のテーブルにコピーする必要があります。(ヒント: この監査情報を維持し、製品が削除されたときに削除されたチケットとチケットの更新を自動的にコピーするには、追加のテーブルまたはセットまたはテーブルを定義する必要があります)。監査テーブルには、削除を要求したユーザーと削除操作のタイムスタンプを記録する必要があります。

追加のmaintain_auditテーブルを作成しました:

さらに、1 つの関数とトリガーを作成しました。

これをすべて実行すると、次のようになります。

皆さん、この問題を解決するのを手伝ってくれませんか?

0 投票する
2 に答える
850 参照

c# - Asp.net と SQL Server を使用してアプリケーションで AuditLog を実行する方法は?

SQL Server テーブルに次の列を作成しました。

挿入、更新、または削除が発生するたびに、関連データを上記の監査テーブルに挿入するための最良かつ効率的な方法は何でしょうか。

ご意見をお聞かせください。ありがとう。

0 投票する
1 に答える
1661 参照

sql-server - カスタム監査とカスタムロギング-SSIS

どちらも同じではないですか?

私は[この記事][1]を読んでいました

[1]:http ://www.sqlmag.com/content1/topic/ssis-logging-and-data-auditing/catpath/business-intelligence-development-studio-bids/page/2そして私はまだはっきりしていませんカスタムロギングと監査の違い。どちらもパッケージの実行時にイベントをログに記録しているようです...私はこれについてあまり経験がないので、これを行った/行った人がいれば、これを明確にしていただけますか?

ありがとうございました

0 投票する
1 に答える
5144 参照

spring - Java EE アプリケーションでの監査ロギングのソリューション

現在のアプリケーションは、Java EE アプリケーションで使用される一般的なスタックである Struts2、Spring、Hibernate などの技術スタックを使用しています。

監査ログ (CRUD 操作ごと) のアイデアをアプリケーションに導入したいと考えています。

アプリケーションで監査ログを実行するための一般的な方法/パターン (つまり、エンティティごとにログを記録するのではなく、単に一般的なもの) が必要ですか? 設計と実装の両方の詳細または例があるとよいでしょう。

また、Struts2 のインターセプター、Spring AOP、または Hibernate の機能を監査ログに使用できますか?

0 投票する
1 に答える
1673 参照

hibernate - 冬眠します。エンティティの変更\改訂履歴

フレームワーク: Spring 3 と Hibernate 3。

データベース: オラクル 11

要件: アプリケーションには Event オブジェクトがあります。これらの各 Event オブジェクトは、一連のエンティティ プロパティ (テーブルの列) をカプセル化したものです。そのため、システムでエンティティが更新されるたびに、エンティティに加えられた変更がイベント オブジェクトの一部であるかどうかを確認する必要があります。そうである場合は、この情報をデータベースに保存する必要があります。実際の変更。

解決策(私が知っている):

  1. Hibernate Envers のような本格的な監査フレームワークを使用し、監査テーブルのクエリ機能の周りに小さなラッパーを記述して、必要なことを達成します。1 つの質問は、休止状態の Envers には、2 つのリビジョン間で変更された内容を提供する簡単な方法があるかどうかです。

  2. カスタム注釈を使用して属性をイベントに属するようにマークし、AOP を使用して保存操作の一部としてこれらの属性への変更を監視し、カスタム書き込み操作を呼び出します。

私は2番目のアイデアの方が好きです。

これを実現するための最善の方法について、意見\考えを共有してください。この種の問題に対する既存の解​​決策はありますか?

0 投票する
3 に答える
1033 参照

sql - 同じテーブル内の SQL Server 監査データ

私が取り組んでいるプロジェクトでは、レコードにデジタルで「署名」する必要があり、その後、変更を加えると行の新しい「バージョン」が作成されます。「署名済み」レコードは、規制上の理由から変更できず、新しいバージョンを頻繁に変更するべきではありません。これまでは、メイン テーブルと同じスキーマで別のログ テーブルを作成し、誰がいつ変更したかを追跡するための追加の列を作成していました。

ただし、すべてのデータ (さまざまなバージョンを含む) が同じテーブルに配置される SharePoint でいくつかの作業を行った後、私は別のアプローチを考えました。同じテーブルで、バージョン番号を増やします。次に、バージョン番号を PK に追加します。

長所:

  • 実装は簡単です。「署名済み」行の更新ではなく挿入を実行する「更新の代わりに」トリガーを作成するだけです。トリガーで更新する IsCurrentVersion 列を簡単に追加できます。
  • 古いバージョンのクエリは簡単です。必要な ID を持つすべてのレコードを取得して、ユーザーがリストから選択できるようにするだけです。
  • トリガーは、署名されている場合に行を更新できないことを保証するため (規制および監査の目的で) 便利です。
  • テーブルに対するスキーマの変更は、ミラーの "ログ" テーブルに複製する必要はありません。

短所:

  • テーブル少し大きくなる可能性がありますが、ほとんどの場合、レコードは「署名」後に変更されません。クライアントは、現在の使用レベルで最大約 100,000 行/年と見積もっています。SQL Server は数億行を処理できるため、これはそれほど悪いことではないように思えます。
  • インデックス作成とパフォーマンスが問題になる可能性があります。SharePoint は tp_CalculatedVersion int を PK に追加します。計算された数値は常に最新バージョンの 0 です。同じことを行い、バージョン番号に基づいて計算できます。それはパフォーマンスに役立ちますか?
  • 最新バージョンを確実に取得するためにデータのクエリを実行する追加の手順がありますが、これは SP で処理できます。

  • このシナリオには他にどのような短所がありますか。私は何かが欠けていますか??