2014년 6월 16일 월요일

Auditing이란![오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE/ORACLE교육/ORACLE학원/오라클실무교육]


======================= 
AUDITING 이란 무엇인가? 
======================= 

1)개 요 

AUDITING 기능은 사용자의 행동을 감시하거나 데이타베이스에 관한 통계자 
료를 얻는 목적으로 사용된다. AUDITING 기능을 사용함으로써 누가 어떤 테 
이블을 언제 사용하고, 언제 어떤 작업을 하는지를 기록할 수 있다. 하지만 
레코드에 대한 AUDITING 은 불가능하며 AUDITING 을 걸게 되면 시스템에 부 
하를 서줄 수도 있기 때문에 자주 사용되는 기능은 아니다. AUDITING 에서 제 
공되지 않는 기능은 사용자가 트리거를 만들어서 구현을 해야 한다. 

2)종 류 

AUDITING 에는 3가지 종류가 있다. 

STATEMENT AUDITING : 명령의 종류에 따라서 AUDITING 설정 
EX)AUDIT TABLE BY SCOTT BY ACCESS WHENEVER SUCCESSFUL; 
 scott 유저가 내리는 명령중 테이블에 관련된 명령(create table, 
 drop table 등)이 성공한 경우 기록된다. 

PRIVILEGE AUDITING : 사용되는 PRIVILEGE 에 따른 AUDITING 설정 
EX)AUDIT CREATE TABLE BY SCOTT BY SESSION; 
  scott 유저가 CREATE TABLE 권한이 필요한 명령(CREATE TABLE)을 내 
  린 경우 접속된 세션에 대해서 한번만 기록된다. 

OBJECT AUDITING    : 적용되는 OBJECT 에 따른 AUDITING 설정 
EX)AUDIT ALL ON SCOTT.EMP; 
  scott.emp 테이블에 대한 모든 명령(SELECT,DELETE,DROP 등)에 관한 
  사항이 기록된다. 

설정된 AUDIT 기능은 NOAUDIT 명령으로 없앨 수 있다. 
EX)NOAUDIT ALL ON SCOTT.EMP; 

3)설 정 

AUDIT 기능은 init.ora 화일에 AUDIT_TRAIL 파라미터를 설정하고 DB 
를 shutdown/startup 하면 작동한다. 

AUDIT_TRAIL=TRUE, AUDIT_TRAIL=DB  로 설정이 되어 있으면 결과는 
SYS.AUD$ 테이블에 쌓이게 되고 AUDIT_TRAIL=OS 로 설정하면 결과가 화일로 
생기게 된다. 

SYS.AUD$ 테이블에서 얻을 수 있는 정보는 매우 많은데 대표적인 것으로 다 
음을 들 수 있다. 

 USER NAME      : 오라클 유저 이름 
 SESSION ID      : 오라클 세션 ID 
 TERMINAL ID    : 유닉스 시스템 상의 터미날 ID 
 OBJECT NAME    : 테이블, 뷰 등의 이름 
 ACCTION ID      : 명령 코드 
 DATE            : 명령이 실행된 날짜,시간 
 COMPLETION CODE : 0 이면 성공, 실패하면 에러코드 

ACCTION ID 는 사용된 명령을 나타내는데 이것은 숫자로 기록이 되어 있으 
므로 AUDIT_ACTIONS 딕셔너리를 통하여 실제의 명령으로 변환해 볼 수 있 
다. 

4)특 징 

*내려진 명령이 ROLLBACK 되더라도 AUDIT 에 의해 기록된 정보는 그대로 남 
아 있다.  
*SYS 또는 INTERNAL 로 접속하여 행하는 명령은 AUDIT 에 의해서 기록되지 
않는다. 
*오라클은 AUDIT 기능의 세팅 여부와는 관계없이 STARTUP, SHUTDOWN, 
CONNECT INTERNAL 과 같은 정보는 OS 상의 화일로 기록을 남겨준다. 
*REMOTE DB 에 대해서 행해지는 작업은 AUDIT 대상이 되지 않는다. 이것은 
REMOTE DB 에서 처리해 주어야 한다. 
*만약 두개의 AUDIT 가 동시에 적용되는 경우라면 하나의 레코드만 생성된 
다. 예를 들어  TABLE 과 CREATE TABLE 이 적용되는 경우이다. 
*OBJECT AUDITING 은 모든 유저에 대해서 적용된다. 특정한 유저를 지정하지 
못한다. 
*BY SESSION 은 접속된 세션에 대해서 하나의 레코드만 생성하고 BY ACCESS 
는 해당 명령이 내려질 때 마다 정보를 기록한다. 
*DDL 을 AUDIT 하는 SYSTEM AUDIT, PRIVILEGE AUDIT  의 경우는 BY ACCESS 
가 디폴트 이고 그외의 경우는 BY SESSION 이 디폴트이다. 

예) 
audit execute on username.procedure_name; 

하면 procedure 의 수행여부가 기록됩니다. 


7.3 이상 version 에서는 column name 이 다음과 같습니다. 

 USERID      : 오라클 유저 이름 
 SESSIONID    : 오라클 세션 ID 
 TERMINAL    : 유닉스 시스템 상의 터미날 ID 
 OBJ$NAME    : 테이블, 뷰 등의 이름 
 ACTION      : 명령 코드 
 TIMESTAMP    : 명령이 실행된 날짜,시간 

따라서, 현재 어떤 작업에 audit 가 걸려 있는지 확인하는 SQL 은 다음과 
같습니다. 

select a.userid,b.name from sys.aud$ a, audit_actions b 
where a.action = b.action;  
  
Previous Article : Lock이 걸린 Session과 SQL문확인  
Next Article : NT용 Oracle에서 Oracle관련 정보를 Regedit에서 삭제할려면?  


오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급 
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(6/23)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 
(6/23)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(6/23)[기업100%환급]SQL기초에서 Schema Object까지
(6/30)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(6/30)[기업100%환급]안드로이드개발자과정
(7/07)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/07)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정

평일야간(19:00~21:50) 개강
(6/17)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/18)C#,ASP.NET마스터
(6/19)웹퍼블리싱 마스터
(6/19)Spring3.X, MyBatis, Hibernate실무과정
(6/24)안드로이드개발자과정
(6/24)MyBatis3.X, Hibernate4.X ORM실무과정
(6/26)SQL초보에서실전전문가까지
(7/02)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정

주말(10:00~17:50) 개강
(6/21)Spring3.X, MyBatis, Hibernate실무과정
(6/21)MyBatis3.X, Hibernate4.X ORM실무과정
(6/21)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/28)SQL초보에서 Schema Object까지
(6/28)안드로이드개발자과정
(6/28)개발자를위한PLSQL,SQL튜닝,힌트
(6/28)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
(6/28)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(7/13)C#,ASP.NET마스터

주말저녁(18:30~22:20) 개강
(6/28)JAVA,Network&WEB&Framework
(6/28)SQL기초에서실무까지

댓글 없음:

댓글 쓰기