質問

MySQLテーブルのすべての変更を監査するように求められました。誰かが私がこれを行うのに役立つツールを知っていますか、または独自のソリューションを書く必要がありますか?

独自のオーディングを作成する場合、最初は別のテーブルを作成し、PHPコードに一連の変更を作成すると考えていました。 " fieldname1->のようなものoldvalue | fieldname2-> oldvalue、..."。この方法で大きな問題が発生した場合は、お知らせください。

役に立ちましたか?

解決

DBテーブルへのすべての変更をキャプチャする唯一の確実な方法は、サーバーでトリガーを使用することです。変更を監査するために独自のコードを変更するリスクは、別のアプリケーション/ユーザーなどからの変更がキャプチャされないことです。

とは言っても、MySQL 4がトリガーをサポートしていたかどうかはわかりません。

他のヒント

トリガーを使用して、変更を検出して書き込むログテーブルの前/後の値。

トリガーのサポートが不足しているためにソリューションを手動でロールアップする場合は、変更を文字列blobにダンプしないことを強くお勧めします。ある日、そのデータを照会するように求められ、データを取り戻すために一連の文字列解析を行う必要があります。 (私はここでの経験から話しています。)

最も単純なアプローチは、元のテーブルと同じ列すべてに加えて、変更日列と連続IDを持つシャドウ監査テーブルを作成することです。次に、必要な形式で再構築するための履歴全体を手元に用意し、自由に照会できます。

SoftTree DB AuditはMySQLをサポートしているので、次のことを実行できます。

http://www.softtreetech.com/idbaudit.htm

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top