sql >> データベース >  >> RDS >> Oracle

失敗したすべてのSQLステートメントをOracle10Gに記録する方法はありますか

    次のような監査を使用することをお勧めします:

    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



    1. SQL Serverで「datetime2」を「datetimeoffset」に変換します(T-SQLの例)

    2. Oracle結合(SQL結合)とは何ですか?

    3. すべてのテーブル(PostgreSQL)で特定の値を検索するにはどうすればよいですか?

    4. 同時アクセス時にテーブル内の特定の行数をマークする方法