次のような監査を使用することをお勧めします:
SELECT TABLE、INSERT TABLE、DELETE TABLE、EXECUTE PROCEDUREBY ACCESSWHENEVER NOT SUCCESSFUL;
ACCESSは、ステートメントごとに使用されます(これはあなたが望むもののようです)。 SESSIONによって、セッションごとに1つのレコードが記録されます(大容量環境)。
Oracleの組み込み監査は、トリガーよりもオーバーヘッドが少なくなります。他の回答に含まれているトリガーを使用すると、必要な情報を正確に記録できます。また、監査は既存のオブジェクトへのヒットのみをキャッチします。誰かが存在しないテーブル(スペルミスなど)を選択した場合、監査はそれをキャッチしません。上記のトリガーはそうなります。
セキュリティガイドの詳細:http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/auditing.htm#i1011984