質問

MySQLバイナリログを使用して、DBを変更するユーザーのUID(ユーザー名)を記録する可能性があるかどうかを知りたいと思います。

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

それは可能ですか?

役に立ちましたか?

解決

それはバイナリログの目的ではありません - バイナリログは、通常、複製と回復の目的のために、データベースに行われたすべての変更の記録を保持します。

考えられる代替手段はそうかもしれません 一般的なクエリログ, 、それには何らかの方法でユーザー名が含まれていると思います。

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

これが私のログの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)を使用して、その接続のユーザーによるものです。

他のヒント

バイナリログは主に複製目的で使用されており、データの変更以外の副情報を保存することはできません。

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

また、ご覧ください クエリログ

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