Oracle Admin 강좌 (Oracle9i)
감사(Auditing) 란 ? 6 1 19,842

by 김정식 AUDIT 감사 AUDITING BY AUDIT_TRAIL AUDIT_FILE_DEST [2005.03.23]


감사(Auditing)란?

  - 의심가는 데이터베이스의 작업을 모니터링 하고, 기록 정보를 수집 하는 기능 입니다.

  - 어느시간때에 어떤 작업들이 주로 발생하는지, 어떤 작업을 누가 하는지 추적 할 수 있습니다.

  - 감사 작업을 하면, 감사 로그를 기록해야 하므로 시스템의 속도는 더 느려질 수 밖에 없습니다.

 

감사의 종류

문장 감사(Statement Auditing)

  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;
    

 

권한 감사(Privilege auditing)

  권한 감사는 시스템권한을 감사 합니다 시스템권한을 부여받은 사용자가 그 권한으로 사용한 모든 문장들을 감사 합니다.

문법

 
  AUDIT privilege [,privilege]..
     [BY user[,user]]
     [BY {SESSION|ACCESS}]
     [WHENEVER [NOT] SUCCESSFUL]
    

예제

 
-- create table 권한에 대해서 감사가 실행 됩니다.
SQL> AUDIT create table 
     BY scott 
     BY ACCESS;
    

 

스키마 오브젝트 감사(Schema Object Auditing)

  특정스키마 오브젝트에 수행되는 명령문을 감사 합니다.

문법

 
  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.ora 파일의 AUDIT_TRAIL 파라미터를 추가하고 DB를 shutdown/startup 해야 합니다.

  - initSID.ora 파일에 AUDIT_TRAIL = value

  value 에는 아래의 세가지가 올 수 있습니다.

① DB(TRUE)

  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

  감사 결과를 OS에 파일로 생성을 합니다. AUDIT_FILE_DEST파라미터에 지정된 디렉토리에 텍스트 파일로 생성이 됩니다.

③ NONE

  감사를 사용하지 않을때 설정을 합니다.

 

감사의 비 활성화

  AUDIT명령에서 선택한 감사를 정지시키려면 NOAUDIT문을 사용 합니다.

 

참고문헌

  • - Oracle 9i DBA Fundamentals I Volumn2
  • - Oracle Technical Bulletins No.10196 AUDITING 이란 무엇인가?

- 강좌 URL : http://www.gurubee.net/lecture/1861

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 그레이맨 [2016.02.12 15:29:19]

audit_tail=db, 감사 기능이 활성화 되어있으면 문장감사, 권한 감사 등이 별도로 지정되어 있지 않더라도 모든 계정에 대해서 sys.aud$ 테이블에 감사가 기록되어 지는것으로 확인되는데요.

문장감사와 권한감사를 별도로 지정하는 이유를 잘 모르겠습니다.

해당 기능의 이점을 알려주실 수 있으신가요??

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입