2016-09-06 6 views
0

に更新されてしまった列のリストを取得すると言う候補者(NOT DBA):Oracleの監査証跡は、スキーマの下の表(学生)を考慮して、最後のトランザクション

学生
{RollNumber:VARCHAR2(10 )、
名:VARCHAR2(100)、
クラス:VARCHAR2(5)、
...
...
...
}

テーブルにはすでに有効なデータが含まれているものとします。

私は私ので、いくつかの他のフィールド

UPDATE STUDENT SET Math_marks = 100 ,PHY_marks , CLASS = 'XYZ' 
WHERE ROLLNUMBER = 'AQ1212' 

を更新していた他の更新クエリが続く

UPDATE STUDENT SET Name = 'ASHWIN' , CLASS = 'XYZ' 
WHERE ROLLNUMBER = 'AQ1212' 

Studentテーブルの名前とクラスを変更する更新クエリを実行します2つの異なるクエリで異なる列を修正しました。最後のトランザクションで更新された列の特定のリストを取得する必要があります。私は、OracleがDBAからアクセス可能ないくつかのテーブル・ログでこれを維持していなければならないと確信しています。しかし、私はDBAアクセス権を持っていません。

私に必要なのは、私はDBA権

を持っていませんスキーマの下で最後のトランザクションに候補を更新してしまった列のリストである私にいくつかの方法を提案してください。

:ここでは簡単な表を示しました。しかし実際には私は8-10のテーブルを持っています。この監査では、ROLLNUMBERが他のすべてのテーブルに対して外部キーを実行するという重要な要素があるとします。トリガを記述することは、すべてのテーブルで複雑になります。だから、同じものを取り出すための他の方法がある場合は、私を助けてください。

+1

あなたが本当に意味するか、 『トランザクションを』または」 「最後のトランザクション」とは何ですか?現在のセッションの最後のトランザクションですか?現在のセッションの最後のトランザクションですか?また、現在のトランザクションの最後のトランザクションですか?実際にはすべてのセッションに行き渡っていますか?これは何らかの監査が有効になっているように思えます。このようなトランザクションログをスキャンする必要はありません。おそらく、以前のバージョンの行がトリガーによって書き込まれる履歴テーブル。 –

+0

"ROWDEPENDENCIES"でテーブルを作成した場合は、更新された行を追跡することができます。 ROWDEPENDENCIESを使用してテーブルを作成すると、新しいrowscn疑似カラムが表示されます。 ora_rowscnは、読み取られたときに表の各行に関連付けられたシステム変更番号(SCN)を提供します。列は、最後のDMLが表のブロックまたは行レベルで実行されたときにSCN(システム変更番号)を提供します。 SCNシステム変更番号は、機能SCN_TO_TIMESTAMPを使用してタイムスタンプとして簡単に変換できます。 – XING

+1

@Raj_Te - 行が更新されたときにおおまかなことがわかります(それに問題がありますが、ほとんどの目的には十分近いでしょう)。それは、どの列が更新されたかをこの質問がすべてであることを伝えるものではありません。 –

答えて

0

"私は、OracleがDBAがアクセスできるいくつかのテーブルログでこれを維持しているに違いないと確信しています。"

実際には、デフォルトではありません。監査証跡は維持するのにはかなり高価なものなので、Oracleは何もしません。監査対象となるもの(アクション、オブジェクト、細分性)を決定し、それらの監査を有効にします。

Oracleは、組み込み機能を有効にするためにDBAアクセス権を必要とします。

監査は非常に幅広い話題であり、考慮すべき事項がたくさんあります。 Oracleのマニュアルでは、セキュリティマニュアルの大きな部分を監査に費やしています。 Introduction To Auditing hereを探します。特定の列の更新を監視するには、ファイングレイン監査が必要です。 Find out more


「私は8-10のテーブルを持っていることは...書くのトリガーは、すべてのテーブルのために複雑になることでしょう。「

必ずしも

ない。トリガーはすべてお互いに似ているので、あなたには、いくつかの一般的な定型テキストをカスタマイズするために、データ・ディクショナリ・ビューUSER_TAB_COLUMNSを使用して、コードジェネレータを構築することができます。

+0

これを詳しく説明できますか? "必ずしもそうではありません。トリガーはすべて互いに似ているので、データ辞書ビューUSER_TAB_COLUMNSを使用して一般的な定型文のテキストをカスタマイズすることができます。 –

関連する問題