Oracle 11g StandardEditionを使用しています。
ユーザーが実行しているすべてのSQLクエリをテーブルに記録したいと思います。
これはどのように行うことができますか?
最新バージョンのデータベース(9i以降)を使用していて、Enterprise Editionライセンスをお持ちの場合は、Fine-GrainingAuditingを使用できます。定義されたポリシーを通じて、非常に低いレベルの粒度でユーザークエリを監査できます。
SQLテキストをキャプチャして変数をバインドするには、FGAポリシーを追加するときにAUDIT_TRAILパラメータを適切に設定する必要があります。 詳細 。
「私は11g標準を使用しているため、監査機能はサポートされていません。」
ではない正確に。 AUDITコマンドは標準のOracleビルドの一部ですが、特定のユーザーが特定のテーブルに対してSELECTを発行したときにのみキャプチャできます。しかし、はい、彼らが選択しているwhatを正確に見つけるには、Enterprise Editionライセンスが必要です。
また、ON SELECTトリガーがないため、自分でロールすることはできません。
「では、Standard EditionでAUDITコマンドを使用できますか?...しかし、コンサルタントから、エンタープライズライセンスを支払わないと使用できないと言われました。」
私自身コンサルタントとして言えば、彼らは彼らが何について話しているのかを常に知っているとは限らないと言わざるを得ません。
明確にしましょう:
SQLのQUICK、EASYロギングの場合、 ここで私の監視の答えを試してください 。長期間のロギングではありませんが、短い時間枠で何が起こっているかを確認するだけでうまく機能します。 :-)