JDBC 데이터 소스에 대한 접속이 생성(사전 처리 함수) 또는 해제(사후 처리 함수)될 때 실행할 Publisher용 PL/SQL 함수를 정의할 수 있습니다.
함수는 부울 값을 반환해야 합니다. 이 기능은 Oracle 데이터베이스에 대해서만 지원됩니다.
이러한 두 필드를 통해 관리자는 데이터베이스에 대한 접속이 설정되기 전 사용자의 컨텍스트 속성을 설정하고 추출 엔진에 의해 접속이 끊긴 후 속성을 해제할 수 있습니다.
시스템 변수 :xdo_user_name을 바인드 변수로 사용하여 PL/SQL 함수 호출로 로그인 사용자 이름을 전달할 수 있습니다. 이러한 방식으로 로그인 사용자 컨텍스트를 설정하면 SQL 질의 레벨이 아닌 데이터 소스 레벨에서 데이터를 보안할 수 있습니다.
예를 들어, 다음 샘플 함수를 정의했다고 가정합니다.
FUNCTION set_per_process_username (username_in IN VARCHAR2) RETURN BOOLEAN IS BEGIN SETUSERCONTEXT(username_in); return TRUE; END set_per_process_username
데이터베이스에 대한 접속이 설정될 때마다 이 함수를 호출하려면 사전 처리 함수 필드에 set_per_process_username(:xdo_user_name)을 입력합니다.
사용자가 접속하거나 접속을 해제할 때마다 LOGTAB 테이블에 행이 삽입되도록 샘플을 사용할 수도 있습니다.
CREATE OR REPLACE FUNCTION BIP_LOG (user_name_in IN VARCHAR2, smode IN VARCHAR2) RETURN BOOLEAN AS BEGIN INSERT INTO LOGTAB VALUES(user_name_in, sysdate,smode); RETURN true; END BIP_LOG;
사전 처리 함수 필드에 BIP_LOG(:xdo_user_name)를 입력합니다.
데이터베이스에 대한 새 접속이 설정될 때 LOGTAB 테이블에 기록됩니다. SMODE 값은 작업을 시작 또는 종료로 지정합니다. 이 함수를 사후 처리 함수로 호출하면 아래 테이블과 같이 결과가 반환됩니다.