2

MySQL Binary Log を使用して、DB に変更を加えたユーザーの Uid (ユーザー名) を記録できるかどうかを知りたいです。

これは、監査目的で必要です。

それは可能ですか?

4

2 に答える 2

1

これは、バイナリログの目的ではありません。バイナリログは、通常、レプリケーションとリカバリの目的で、データベースに加えられたすべての変更の記録を保持します。

考えられる代替案は、一般的なクエリログである可能性があります。これには、何らかの方法でユーザー名が含まれていると思います。

これはすべて、アプリケーション内の任意の「ユーザー」ではなく、実際の接続ユーザー名について話していることを前提としています。

これは、ログの1つから取得した例です。

111130 13:46:50   130 Connect   myusername@localhost on
                  130 Init DB   mydatabase
                  130 Query     SELECT somefields FROM sometable
                  130 Query     SELECT somefields FROM sometable
                  130 Quit

ご覧のとおり、接続ユーザー名を取得すると、その接続ID(この場合は130)を持つものはすべて、その接続上のそのユーザーによるものになります。

于 2011-11-30T13:33:37.723 に答える
1

バイナリ ログは主にレプリケーションの目的で使用され、データの変更以外の副次的な情報を保存することはできません。

表示可能なログを保存する場合 (バイナリ ログは mysql のみを使用できるように設計されているため)、追加のテーブルを保存する必要があります: プライマリ テーブルのデータ + ユーザー + 時間。

また、クエリログを確認することもできます

于 2011-11-30T13:40:50.667 に答える