=======================
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에서 삭제할려면?
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기초에서실무까지
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기초에서실무까지
댓글 없음:
댓글 쓰기