問題タブ [auditing]
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 - データベースの永続オブジェクトのバージョン管理、どうしますか?
(データベース スキーマのバージョン管理とは関係ありません)
多くの場合、データベースとやり取りするアプリケーションには、多くのテーブルのデータで構成されるドメイン オブジェクトがあります。アプリケーションが、CVS の意味で、これらのドメイン オブジェクトのバージョン管理をサポートするとします。
任意のドメイン オブジェクトについて、この要件を処理するデータベース スキーマをどのように設計しますか? 共有する経験はありますか?
database - LLBL Gen Pro 2.6 と監査
私は LLBL Gen Pro v2.6 を使用しており、データベースに加えられた変更を監査する手段を作成しようとしています。これで、LLBL Gen には、AuditorBase と依存性注入を使用した監査機能が組み込まれていることがわかりました。私が持っている質問は次のとおりです。LLBL Gen が監査可能として公開するものだけでなく、変更を行ったユーザーも追跡する必要があります。私が見たところ、この情報を収集する組み込みの方法はありません。LLBL Gen のビルトイン監査を使用して、これを行う方法を決定した人はいますか?
ウェイン・E・フェファー
database-design - データベース内のレコードをバージョン管理する方法
データベースにレコードがあり、管理者と通常のユーザーの両方が更新を実行できるとしましょう。
レコードを以前のリビジョンにロールバックできるように、このテーブルのすべての変更をバージョン管理する方法について、誰かが良いアプローチ/アーキテクチャを提案できますか?
grails - Grails の MappedSuperclass の代替案
過去の多くのプロジェクトで、このJPA / Hibernate アプローチを使用してシステムに監査機能を追加しました。それは非常に効果的で控えめです。
Grails @MappedSuperclass の代替手段 (Groovy の代わりに Java でドメイン モデル オブジェクトをコーディングする以外) はありますか? テーブルを作成せずに、サブクラスごとのテーブルアプローチで親クラスを宣言するにはどうすればよいですか? GORM のドキュメント ( 5.2.3 Inheritance in GORM ) を読みましたが、階層ごとのテーブルとサブクラスごとのテーブルの議論以外に、これを行う方法の詳細は見つかりませんでした。
または、Grails でこのタイプの監査を実現するための推奨される方法は何ですか?
sql-server - SQL Server 2005 の変更の監査
SQL Server 2005 には、特にストアド プロシージャの削除などを監査する組み込みの方法はありますか? 照会できる履歴テーブルはありますか? 現在、数回姿を消した謎の sproc があります。
sql-server - MS SQL 監査
職場のデータベースに問題があります。現在、監査が実施されていますが、扱いにくく、多くのメンテナンスが必要であり、いくつかの点で不十分です。なので交換しています。
私はこれをできるだけ一般的な方法で行いたいと考えており、テーブルを設計し、すべてがどのようにリンクして更新されるかを説明しました。
さて、これですべて問題ありませんが、これらの監査テーブルにレコードを挿入する一般的な方法を記述できるようにしたいと考えています。(変更する各テーブルの列ごとにコマンドを入力する必要はありません。)
ストアド プロシージャ内に、テーブル内のすべての列を反復処理する方法はありますか? そして、これをいくつかのテーブルで動作し、追加された列などを自動的にピックアップして監査するように書きたいと思います。
何か案は?
編集:明確にする必要があると思います。テーブル内のデータを監査します。ただし、同じテーブルを使用して、データベース内のすべてのテーブルの監査データを保存します。
通常、更新が発生すると複数のテーブルで発生するため、トリガーを使用できませんが、これらの更新をすべて単一の変更セットの一部にしたいと考えています。
単一の Stored Proc 内からすべての更新を実行できるため、これは問題ではありません。更新されたすべてのフィールドを取得し、どのフィールドが変更されたかを把握し、それらの変更されたフィールドを監査テーブルに挿入できるループのような方法を好むだけです。
そして、各列のifステートメントとinsertステートメントの長いリストを持たずにこれを行いたいと思います。(これを一般的なループで行うことにより、追加された列が自動的に処理され、削除された列に悩まされることはありません)
java - log4j構成のサブカテゴリーのレベルをオーバーライドします
私のアプリケーションにはいくつかの監査があります。すべての監査イベントには、同じ文字列がプレフィックスとして付けられた名前を持つ独自のlog4jカテゴリがあります。
EG:一般監査カテゴリ名:com.company.audit
Webログインカテゴリ名:com.company.audit.web.login
何かを作成します:com.company.audit.api.createなど。
一部のカテゴリはデフォルトでログに記録される必要がありますが、一部はログに記録されません=>
デフォルトはINFOであるため、2番目のカテゴリはログに記録されません。少なくとも私はそれを考えましたが、それは機能しません。'サブカテゴリ'のログレベルを上書きする方法についてのヘルプ。
注:命名スキーム全体を変更する可能性はあまりありません
追加した:
アペンダーの構成は次のとおりです。
sql-server - SQL Server 2000 に DDL 監査はありますか
そうでない場合、トリガーがいつ無効/有効になったかを知る方法はありますか?
ファローアップ:
かなり興味深い診断例です。私は周辺から関与しただけで、診断を行っているのはデータベース担当者ではありません。
とにかく、彼はあるテーブルから別のテーブルにデータを移動するトリガーを持っていました。彼は比較を行いましたが、すべてのデータが 2 番目のテーブルにあるわけではありませんでした。私は SQL Server の批判者ですが、SQL Server のトリガーが同じトランザクションで起動することを信頼しています。彼は言ったが、一部のデータは成功した... それが無効になっているだけなら、何も成功しないはずだ. 真実。それで、誰かがトリガーを有効または無効にしている可能性があると言いました。したがって、質問です。
しかし、実際に起こったことは、誰かがトリガーを永久に無効にし、特定の時間に実行するように設定された sproc にコードをコピーしたことです。
正しいフォレンジック テストは、2 番目のテーブルの依存関係を調べて、他に何が使用されているかを確認することでした。それは腫瘍の発生を示します... (私はハウスの再放送をたくさん見てきました、わかりますか)。
sql-server-2005 - SQL Server 2005: ランダム レコード削除の監査
これはばかげた質問のように思えるかもしれませんが、私は今、頭→壁の状況にいます。
私は、SQL Server 2005 データベースが複数の異なるアプリケーションによって更新される大規模な ERP アプリケーションに取り組んでいます。特定のテーブルの削除がどこから発生しているのかを突き止めようとしています。
プロファイラーを使用してみましたが、さまざまな四半期から毎秒データベースに非常に多くのヒットがあるため、誤った SP を特定するのに十分なイベント タイプをフィルター処理できません。また、Profiler は、DDL の変更や Object DROP タイプのアクションを見つけることをより重視しているようです。
私は単に質問に答えようとしています: What Stored Proc. または SQL クエリが原因でテーブル X からレコードが削除されましたか?
どのツールを使用すればよいですか? Trigger based Auditingのようなものを避けたいと思っていました。それとも、Profiler はこの種の調査に最適なツールですか? それとも、サードパーティのツールが唯一の手段ですか?
私はこのトピックに比較的慣れていないため、役立つリンクを提供してください。
ruby-on-rails - Railsでオンラインユーザーを追跡するには?
Rails には Java フレームワークのようなセッション追跡のメカニズムがないため、これは常に私にとって問題でした。サイトに現在ログインしているユーザーを追跡するためにどのような方法を使用していますか? ユーザーがサイトのどこかをクリックするたびに現在の時刻で last_visited フィールドを設定し、過去 10 分間にそのフィールドを更新したユーザーをチェックするという簡単な方法を使用します。この方法以外にどのような方法がありますか?