예 특정 테이블에서 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
작업을 감사합니다. oracle로 하여금 감사 된 명령문 및 작업마다 하나의 레코드를 작성하게하려면 BY ACCESS
을 지정하십시오.
SQL> conn/as sysdba
SQL> audit all on jay.tbl1 by access; -- or just audit all on jay.tbl1
Audit succeeded.
제이 사용자를 사용하여 새 세션을 만들고 일부 작업을 수행하십시오.
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