問題タブ [audit-trail]
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.
database - インターセプターを使用した新しい値と古い値を使用した休止状態の監査証跡
最終更新日、変更者などを簡単にログに記録できます。ただし、古い値と新しい値もログに記録する必要があります。インターセプターでは、postflush の実行が開始される前に選択を起動して、現在のレコードの値を取得できます。次に、このレコードと新しいレコードの差分を実行して、何が変更されたかを確認し、その情報を古い値と新しい値としてログに記録します。より良い方法はありますか?
問題は、変更するオブジェクトが、他のオブジェクトへの参照も含めて非常に巨大になる可能性があることです。diff を実行すると、コストがかかる場合があります。
-ありがとう
sql - Sql Server 2008 での変更追跡に関するアドバイス
私のクライアントは、アプリケーションで完全な監査証跡 (すべてのテーブルの履歴データの完全なビュー) を実行する方法を探しています。
テーブルのコピーを作成したり、フィールド名、フィールド値、変更者、変更者などを保存したりする昔ながらの方法を使用する以外に、Sql Server 2008 変更追跡の使用を検討していました。msdnでハウツー記事を
見つけました。
Sql Server 2008 の Change Tracking 機能を使用した (または POC を行った) 人はいますか? また、可能であれば、そこから何を望んでいたのか、何を見つけた/結論付けたのかを明記してください. 同じことに関するヒントは大歓迎です。
[編集]
1 週間経ってもまだ回答がありません。
ruby-on-rails - Rails アプリで監査証跡を作成する方法
私は小さなレールアプリを持っています。監査証跡を入れたい。基本的に、新しいユーザーが追加されたとき。AuditTrailUsers
新しい user_id が作成され、ユーザーの user_id にログインしたテーブルに行が挿入されます。
これには Rails コールバックを使用することを考えていますbefore_save
。ただし、それが機能するかどうかはわかりません。
model/Users.rb
私が持っていると想像してください model/AuditTrailUser.rb
insert_audit
を呼び出すときにAuditTrailUserに渡すことができるように、(ログインしたユーザーの)ユーザーIDを取得するように実装するにはどうすればよいですかAuditTrailUser.create(...)
。
ログインしているユーザーのユーザーIDを渡すとbefore_save
、どこでも明示的に呼び出す必要があります...
私はレールが初めてです。
.net - Web アプリケーションの監査
アプリケーションがシステム アカウントとしてデータベースに接続している場合、Web アプリケーション、特にデータベースの変更を監査するにはどうすればよいですか?
簡単なデータベース トリガーを使用して監査テーブルに書き込みたいのですが、実際に作業を行っているアカウントではなく、ログオンしているユーザーを追加する方法がわかりません。
ID フローに関する記事をいくつか読みましたが、その概念を完全には理解していません。
sql-server-2008 - 変更データキャプチャまたは変更追跡-従来の監査証跡テーブルと同じですか?
Microsoftのドキュメントの深淵を深く掘り下げる前に、Change DataCaptureとChangeTrackingの経験がある人が、これらの一方または両方を従来の...に置き換えることができるかどうかを知っているかどうかを知りたいと思います。
「トリガーによって挿入された「実際のテーブル」(元のテーブルのすべてのフィールドに加えて、日付/時刻、ユーザーID、およびDMLアクションフィールド)の証跡テーブルのコピーを監査します。」
...データベーステーブルの監査証跡を設定します。ここで、トリガーは監査証跡テーブルにデータを入力します(これはすべて手動の作業です)。
MSDNの概要ドキュメントでは、変更データのキャプチャと変更の追跡について大まかに説明していますが、これらのツールを使用して従来の監査証跡テーブルを置き換えることができることは、私には十分に明確ではなく、明確に述べられていません。とても頻繁に作りました。
変更データキャプチャと変更追跡を使用した経験のある人は、私に多くの時間を節約できますか、または私が適切なツールを探すことに時間を費やしていることを確認できますか?監査証跡の重要な部分は、テーブルのフィールド(INSERT、UPDATE、DELETE)に対するすべての変更を、いつ発生し、誰が実行したかをキャプチャすることです。これらの変更は通常、監査証跡レポートを介して時系列でエンドユーザーに提供されます。別の質問はどれですか...変更データキャプチャまたは変更追跡が解決策です。このデータは通常のテーブルのデータと同じようにクエリできると思いますか?
編集:時間に関係なく、恒久的な監査証跡が必要です。Change Data Captureはトランザクションログに関係していることがわかります。そのため、これは私には有限に聞こえます。
logging - 監査/ログ データベースに適した NoSQL および非リレーショナル データベース ソリューションとは
フォローするのに適したデータベースは何ですか? 非リレーショナルNoSQLシステムに関するあなたの経験に特に興味があります。この種の使用に適しているか、どのシステムを使用して推奨するか、または通常のリレーショナル データベース (DB2) を使用する必要がありますか?
監査証跡/ログ タイプの情報を多数のソースから中央サーバーに収集して、レポートを効率的に生成し、システムで何が起こっているかを調べる必要があります。
通常、監査/ロギング イベントは常にいくつかの必須フィールドで構成されます。
- グローバルに一意の ID (このイベントを生成したプログラムによって何らかの方法で生成されたもの)
- タイムスタンプ
- イベントの種類 (つまり、ユーザーがログインした、エラーが発生したなど)
- ソースに関する情報 (server1、server2)
さらに、イベントには 0 ~ N のキーと値のペアが含まれる場合があり、値は最大で数キロバイトのテキストになる可能性があります。
- Linuxサーバーで実行する必要があります
- 大量のデータ(たとえば100GB)で動作するはずです
- ある種の効率的な全文検索をサポートする必要があります
- 同時読み取りと書き込みを許可する必要があります
- 新しいイベント タイプを追加したり、キーと値のペアを新しいイベントに追加/削除したりできる柔軟性が必要です。柔軟 = データベース スキーマを変更する必要はありません。イベントを生成するアプリケーションは、必要に応じて新しいイベント タイプ/新しいフィールドを追加するだけです。
- データベースに対してクエリを実行すると効率的です。何が起こったのかを報告し、調査するため。例えば:
- ある期間に発生した type=X のイベントの数。
- フィールド A の値が Y であるすべてのイベントを取得します。
- タイプ X でフィールド A の値が 1 でフィールド B が 2 ではなく、イベントが過去 24 時間に発生したすべてのイベントを取得する
sql - MySQL データベース監査証跡トリガー
MySql Db の特定のテーブルの変更 (監査証跡) を追跡する必要があります。ここで提案されたソリューションを実装しようとしています。
次の列を持つ AuditLog テーブルがあります: AuditLogID、TableName、RowPK、FieldName、OldValue、NewValue、TimeStamp。
mysql ストアド プロシージャは次のとおりです (これは正常に実行され、プロシージャが作成されます)。
次のようなプロシージャーへの呼び出し: CALL addLogTrigger('ProductTypes', 'ProductTypeID'); 実行されますが、トリガーは作成されません (画像を参照)。SHOW TRIGGERS は空のセットを返します。
何が問題なのか、またはこれを実装する別の方法を教えてください。
代替テキスト http://pssnet.com/~devone/pssops3/testing/callprocedure.png
asp.net - どのユーザーが変更を行ったかを記録しながら、ASP.NET メンバーシップ テーブルをどのように監査しますか?
トリガーベースのアプローチを使用してログを監査し、データベース内のテーブルに加えられた変更の履歴を記録しています。どのユーザーが変更を行ったかを記録するために (静的 SQL サーバー ログインで) 使用しているアプローチには、各データベース接続の最初にストアド プロシージャを実行することが含まれます。トリガーは、監査行を記録するときにこのユーザー名を使用します。(トリガーは製品 OmniAudit によって提供されます。)
ただし、ASP.NET メンバーシップ テーブルには、主にメンバーシップ API を介してアクセスします。メンバーシップ API がデータベース接続を開くときに、現在のユーザーの ID を渡す必要があります。MembershipProvider のサブクラス化を試みましたが、基になるデータベース接続にアクセスできません。
これは一般的な問題のようです。ASP.NET メンバーシップがデータベース接続を確立するときにアクセスできるフックを知っている人はいますか?
sql-server - 監査対象のデータベース以外のデータベースに監査データを保持するように SQL Server 2008 監査を構成できますか?
SQL Server 2008 の新しい監査機能を使用する予定です。監査データを別のデータベースに挿入するように監査コンポーネントを構成する方法はありますか?
asp.net - SQLServerを使用したWebアプリケーションの監査証跡
asp.netとsqlサーバーを使用してWebアプリケーションを開発しています。アプリケーションの監査証跡を作成する必要があります。私がこれを理解しているように、監査証跡は基本的にデータベース上のすべての挿入、更新、および削除に対するものですよね?これにアプローチする方法は、挿入、更新、または削除が実行されるたびにデータが入力される監査証跡テーブルをDBに作成することです(DAL内でスクリプトを手動で記述します)。ただし、SQL Management Studioから直接発生したDBの変更は記録されません(明らかな理由:P)。
それに応えるために、私はトリガーを作成することができ、それがすべてを処理します。また、グーグルを実行したところ、SQLサーバーに監査証跡を実行する機能があることがわかりました。ただし、トリガーを使用する場合の問題は、Webサイトにログインしたユーザー情報を取得できないことです。私はSQLユーザーを取得しますが、それについて2つのヒントを与えることはしません。私は、Webサイトユーザーについて心配しています。
私が理解した解決策は、a)Webアプリケーションからの監査証跡を持ち、トリガーを設定することでした。監査レポートには、Webアプリケーションからの監査ログとSQLサーバーからの監査ログを表示するだけです。このアプローチの明らかな問題:頭上。DBが変更されるたびに2つの異なるテーブルセットに書き込みます。
b)すべてのDBテーブルにUserIdという列があります。次に、すべてのDB変更をキャプチャするトリガーを作成します。変更するすべてのテーブル(挿入、更新、削除)にこのuserIdを渡し、トリガーからこのIDを取得します。明らかな挫折:すべてのテーブルに不要なuserid列
長い投稿をお詫び申し上げます。基本的に、すべてのデータベースの変更(データベースへの直接ハックを含む)をログに記録する監査ログが必要ですが、同時に、Webアプリケーションから行われたデータベースの変更のユーザーログイン情報を提供します。
この点に関するご意見をいただければ幸いです。
どうもありがとう
xeshu