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 |