- 의심가는 데이터베이스의 작업을 모니터링 하고, 기록 정보를 수집 하는 기능 입니다.
- 어느시간때에 어떤 작업들이 주로 발생하는지, 어떤 작업을 누가 하는지 추적 할 수 있습니다.
- 감사 작업을 하면, 감사 로그를 기록해야 하므로 시스템의 속도는 더 느려질 수 밖에 없습니다.
CREATE TABLE, DROP USER등의 SQL문장에 대해서 Audit 할 수 있습니다.
문법
AUDIT statment[,statement]..
[BY user[,user]]
[BY {SESSION|ACCESS}]
[WHENEVER [NOT] SUCCESSFUL]
- [BY user[,user]] : 감사할 유저
- [BY {SESSION|ACCESS}] : 세션별로 할 것인지 ACCESS별로 할 것인지 선택
- [WHENEVER [NOT] SUCCESSFUL] : 성공한 경우에만 감사 아니면 실패한 경우에 감사, 생략하면 성공/실패 둘다 감사
예제
-- scott 유저가 내리는 명령 중 테이블에 관련된 명령 -- (CREATE TABLE, DROP TABLE)등이 성공한 경우 기록 됩니다. SQL> AUDIT TABLE BY SCOTT BY ACCESS WHENEVER SUCCESSFUL;
권한 감사는 시스템권한을 감사 합니다 시스템권한을 부여받은 사용자가 그 권한으로 사용한 모든 문장들을 감사 합니다.
문법
AUDIT privilege [,privilege]..
[BY user[,user]]
[BY {SESSION|ACCESS}]
[WHENEVER [NOT] SUCCESSFUL]
예제
-- create table 권한에 대해서 감사가 실행 됩니다. SQL> AUDIT create table BY scott BY ACCESS;
특정스키마 오브젝트에 수행되는 명령문을 감사 합니다.
문법
AUDIT statment[,statement].. ON {[schema.]object|DEFAULT} [BY {SESSION|ACCESS}] [WHENEVER [NOT] SUCCESSFUL]
예제
-- scott.emp 테이블에 대한 모든 명령(SELECT, DELETE, DROP 등)에 -- 관한 사항이 기록 됩니다. SQL> AUDIT ALL ON SCOTT.EMP;
- init
- initSID.ora 파일에 AUDIT_TRAIL = value
value 에는 아래의 세가지가 올 수 있습니다.
Audit Trail을 SYS.AUD$에 기록을 합니다. DB대신 TRUE로 지정을 해도 됩니다.
SYS.AUD$ 테이블에서 얻을 수 있는 정보는 매우 많은데 대표적인 것으로 다음을 들 수 있다.
- USER NAME : 오라클 유저 이름
- SESSION ID : 오라클 세션 ID
- TERMINAL ID : 유닉스 시스템 상의 터미날 ID
- OBJECT NAME : 테이블, 뷰 등의 이름
- ACTION ID : 명령 코드
- DATE : 명령이 실행된 날짜,시간
- COMPLETION CODE : 0 이면 성공, 실패하면 에러 코드
감사 결과를 OS에 파일로 생성을 합니다. AUDIT_FILE_DEST파라미터에 지정된 디렉토리에 텍스트 파일로 생성이 됩니다.
감사를 사용하지 않을때 설정을 합니다.
AUDIT명령에서 선택한 감사를 정지시키려면 NOAUDIT문을 사용 합니다.
- 강좌 URL : http://www.gurubee.net/lecture/1861
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.