はい、特定のテーブルの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
ありがとうございました。しかし、それは私のために働いていない...私はユーザーAのテーブルを作成し、私はすべての監査を実行します。そして、コマンドを実行します。選択、挿入などはdba_audit_trailで書かれています。しかし、切り捨てはただではありません。 – user2671057
最後に、私はmy_userによる監査テーブルでそれを行います。ありがとう! – user2671057
上記のコードをOracle 12.2でテストしましたが、これは解答のように完全に機能しました。私はあなたが別のバージョンを使用していたと思います。おそらく – JSapkota