
💡 누군가 민감한 고객 데이터가 있는 특정 테이블을 조회하면, 누가 조회했고 어떤 쿼리를 수행했는지 로그에 남게 하는 오라클 기본 기능
[oracle@ora19c ~]$ sysdw
SQL*Plus: Release 19.0.0.0.0 - Production on 금 9월 5 12:07:40 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
휴지 인스턴스에 접속되었습니다.
SYS @ ora19dw > startup
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 2415917880 bytes
Fixed Size 8899384 bytes
Variable Size 520093696 bytes
Database Buffers 1879048192 bytes
Redo Buffers 7876608 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SYS @ ora19dw >
SYS @ ora19dw >
SYS @ ora19dw > show parameter audit_trail
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_trail string DB
SYS @ ora19dw >
-- audit_trail 을 db 로 하면 감사로그가 system tablespace 에 저장됩니다.
-- system tablespace 의 공간을 늘리고 감사 옵션을 켜야합니다.
SYS @ ora19dw > drop tablespace ts02 including contents and datafiles;
테이블스페이스가 삭제되었습니다.
SYS @ ora19dw > alter tablespace system
2 add datafile '/home/oracle/system01b.dbf' size 20m;
테이블스페이스가 변경되었습니다.
SYS @ ora19dw > alter tablespace system
2 add datafile '/home/oracle/system01c.dbf' size 50m;
테이블스페이스가 변경되었습니다.
SYS @ ora19dw > alter tablespace system
2 add datafile '/home/oracle/system01d.dbf' size 100m;
테이블스페이스가 변경되었습니다.
SYS @ ora19dw > SELECT value FROM v$option WHERE parameter='Unified Auditing';
VALUE
----------------------------------------------------------------
FALSE
💡 oracle12c 이상부터는 Unified Auditing 기능을 선택적으로 활성화 할 수 있게 되어있음
--> 이 기능이 꺼져있으면 전통 감사 방식만 사용 가능
--> 이 기능을 true로 켜면 os에 감사 로그를 저장하게 할 수 있음
SYS @ ora19dw > audit table;
감사 성공입니다.
SYS @ ora19dw > connect scott/tiger
연결되었습니다.
SCOTT @ ora19dw >
SCOTT @ ora19dw > drop table emp;
테이블이 삭제되었습니다.
-- 그리고 sys 유져로 접속해서 감사로그를 확인합니다.
select username, timestamp, action_name, terminal
from dba_audit_trail;

💡 위와 같이 drop 을 하면 drop 된 시간과 유져명이 나오는데 terminal이 pts/0 이라고 나온 것은 putty 에서 작업했기 때문. 그래서 현업에서는 일반 유져들이 절대로 putty 나 모바텀같은 창으로 접속할 수 없게 하고 오랜지나 sql developer 등을 이용하게함
flashback table emp to before drop;
select * from emp;
drop table dept;

select username, timestamp, action_name, obj_name,terminal
from dba_audit_trail;