DB2 V9.7 FixPack3 부터는 로그온 트리거라는 기능을 지원한다. 오라클이나 MS-SQL에서는 트리거라는 이름으로 작성을 하지만, DB2에서는 procedure를 통하여 기능 구현하여 실행을 시킨다.
기능을 테스트해보면서 그 기능이 제약적이다라는 느낌이 들었지만, “기본 스키마 이름”를 변경하거나 “기본 library 경로”등을 세션단위로 설정하고자 할 경우에 도움이 될 듯 하다. 아마도 버전 upgrade되면서 보다 다양하게 활용되도록 개선되지 않을까 싶다.
DB의 구성변수에 CONNECT_PROC 라는 변수에 실행시키고자 하는 stored procedure를 설정하면 사용자가 “접속 하는 순간” 실행이 되어진다.
테스트 시나리오는 사용자가 접속할 때, 접속 계정 명, 접속 시간을 기록하도록 하는 것으로 정의하였다.
생성 스크립트 db2 +p -td"@" -v << EOF CREATE TABLE SECURITY.AUDIT(userid VARCHAR(20), event VARCHAR(20), tstamp TIMESTAMP)@ CREATE OR REPLACE PROCEDURE ENVIRONMENT.CONNECTION_SETUP_DBMOD() update db cfg using connect_proc ENVIRONMENT.CONNECTION_SETUP_DBMOD @ EOF |
접속 전 Audit 테이블 조회
SQL 실행 db2 "select * from security.audit" 실행 결과 USERID EVENT TSTAMP 0 record(s) selected. |
접속 시도
db2 connect to sample |
Audit 테이블 조회
SQL 실행 db2 "select * from security.audit" 실행 결과 USERID EVENT TSTAMP |
'Note' 카테고리의 다른 글
[SQL] 익명 블록 (Anonymous Block) (0) | 2011.12.05 |
---|---|
[SQL] 자율 트랜잭션(Autonomous Transaction) (0) | 2011.11.28 |
[관리] DB2 Rebind 가 필요한 시점 (0) | 2011.10.06 |
[설치] Linux CentOS에서 NFS 설정하기 (0) | 2011.09.23 |
[설치] db2iprune으로 불필요한 설치 이미지 제거하기 (0) | 2011.09.23 |