2017-04-25 1 views
0

1つのテーブルに切り捨てとドロップ文をキャプチャしたい。 切り捨てとドロップを監査する

audit truncate, drop on schema.table; 

は、だから私が試した:私はそれを実行することは不可能だということだいくつかのGoogle検索で

私が理解したように、これは、作成キャプチャドロップと切り捨てることになっ

audit table; 

についてのすべてのテーブル。

だから、私の質問:

  1. はそれが本当にそれを行うための最善の方法ですか?私は1つの特定のテーブルだけで欲しい。
  2. この文でも、テーブル上の切り捨てを実行した後は、取り込まれません。データのない

DBA_AUDIT_TRAIL

滞在..

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

答えて

0

はい、特定のテーブルのDROP TABLEとTRUNCATE TABLEを監査できます。

ここに、私のaudit_trailパラメータとその値があります。

SQL> conn/as sysdba 
SQL> show parameter audit 

NAME      TYPE VALUE 
------------------------------------ ----------- ------------------------------ 
audit_file_dest    string /u01/app/oracle/admin/orcl/adu 
         mp 
audit_sys_operations    boolean  TRUE 
audit_syslog_level   string 
audit_trail    string DB, EXTENDED 
unified_audit_sga_queue_size   integer  1048576 

私はtbl1というテーブルテーブルを作成しました。

SQL> conn jay 
Password: 

Connected. 
SQL> create table tbl1(id number); 

Table created. 

ここで、そのテーブルで監査を有効にしましょう。表にALLを指定すると、oracleはCREATE TABLE,DROP TABLEおよびTRUNCATE TABLE操作を監査します。監査対象の文および操作ごとに1つのレコードを作成する場合は、BY ACCESSを指定します。

SQL> conn/as sysdba 
SQL> audit all on jay.tbl1 by access; -- or just audit all on jay.tbl1 

Audit succeeded. 

Jayユーザーを使用して新しいセッションを作成し、いくつかの操作を実行します。

SQL> conn jay 

SQL> truncate table tbl1; 

Table truncated. 

SQL> drop table tbl1; 

Table dropped. 

監査証跡を確認しましょう。

SQL> conn/as sysdba 

SQL> select action_name from dba_audit_trail where obj_name='TBL1'; 

ACTION_NAME 
---------------------------- 
DROP TABLE 
TRUNCATE Table 
+0

ありがとうございました。しかし、それは私のために働いていない...私はユーザーAのテーブルを作成し、私はすべての監査を実行します。そして、コマンドを実行します。選択、挿入などはdba_audit_trailで書かれています。しかし、切り捨てはただではありません。 – user2671057

+0

最後に、私はmy_userによる監査テーブルでそれを行います。ありがとう! – user2671057

+0

上記のコードをOracle 12.2でテストしましたが、これは解答のように完全に機能しました。私はあなたが別のバージョンを使用していたと思います。おそらく – JSapkota

関連する問題