2009-08-15 4 views
0

特定の期間内にデータベースに対して実行されたすべてのコマンドを見つけることは可能ですか?たとえば、過去24時間に誰がデータベーステーブルにinsertコマンドを実行したのかを知りたいと思います。特定の期間内にMySQLデータベースで実行されたすべてのコマンドを調べるにはどうすればよいですか?

ご協力いただければ幸いです。

ありがとうございました。

答えて

1

データを変更するクエリの場合は、バイナリログを確認できます。しかし、私はこれがあなたにユーザーを得るでしょうとは思わない:

$ mysqlbinlog /var/log/mysql/mysql-bin.000145 
… 
# at 3178 
#090805 6:25:15 server id 1 end_log_pos 3373 Query thread_id=2170317  exec_time=0  error_code=0 
SET TIMESTAMP=1249467915/*!*/; 
UPDATE phpbb3_topics 
       SET topic_views = topic_views + 1, topic_last_view_time = 1249467915 
       WHERE topic_id = 95847/*!*/; 
# at 3373 
… 

ユーザーを取得するには、テーブル上のトリガを設定し、別のテーブルに監査ログを保存するために、これらのトリガを使用する必要があります。

すべてのクエリを選択する必要がある場合は、general query logもありますが、パフォーマンスの影響とディスク要件のために通常はオンになっていません。

関連する問題