Example.com의 급여 부서는 급여 데이터를 SQL 데이터베이스에 저장합니다. 이 데이터베이스에는 두 개의 테이블(employee 및 salary)이 있습니다. Example.com에는 해당 데이터에 대한 액세스 권한을 필요로 하는 LDAP 클라이언트 응용 프로그램이 있습니다. 이 클라이언트 응용 프로그램의 경우 SQL 데이터의 모양이 LDAP 데이터와 같아야 합니다.
다음 다이어그램은 클라이언트 응용 프로그램의 요구 사항을 보여줍니다.
이 응용 프로그램의 요구 사항을 충족하기 위해 SQL 테이블의 열을 LDAP 속성에 매핑하는 JDBC 데이터 보기가 만들어집니다.
단순하게 만들기 위해 이 절에 사용된 명령은 다음 정보를 가정합니다.
디렉토리 프록시 서버 인스턴스는 기본 LDAP 포트(389)를 사용하여 로컬 호스트에서 실행됩니다.
디렉토리 프록시 서버 인스턴스는 /local/myDPS에 있습니다.
프록시 관리자 비밀번호를 포함하는 파일에 대한 경로가 LDAP_ADMIN_PWF 변수로 설정되었습니다. 디렉토리 프록시 서버 환경 변수를 설정하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.0 Installation Guide의 Environment Variables를 참조하십시오.
SQL 데이터베이스가 가동되어 실행 중입니다.
JAVA_HOME 변수가 올바른 Java 경로로 설정되었습니다.
SQL 데이터베이스의 비밀번호는 myPassword입니다.
급여 데이터베이스에 대한 JDBC 데이터 소스를 만듭니다.
$ dpconf create-jdbc-data-source payroll-src myPassword
SQL 데이터베이스의 등록 정보를 사용하여 JDBC 데이터 소스를 구성합니다.
$ dpconf set-jdbc-data-source-prop payroll-src db-user:proxy db-pwd:myPassword db-url:jdbc:payrollsqldb:payrollsql://localhost driver-url:file://payrollsqldb.jar driver-class:org.payrollsqldb.jdbcDriver
JDBC 데이터 소스를 활성화합니다.
$ dpconf set-jdbc-data-source-prop payroll-src is-enabled:true
급여 데이터베이스에 대한 JDBC 데이터 소스 풀을 만듭니다.
$ dpconf create-jdbc-data-source-pool payroll-pool
급여 데이터 소스를 데이터 소스 풀에 첨부합니다.
$ dpconf attach-jdbc-data-source payroll-pool payroll-src
o=payroll의 가상 DN을 사용하여 급여 데이터베이스에 대한 JDBC 데이터 보기를 만듭니다.
$ dpconf create-jdbc-data-view payroll-view payroll-pool o=payroll
SQL 데이터베이스의 각 테이블에 대한 JDBC 테이블을 만듭니다.
$ dpconf create-jdbc-table jdbc-employee employee $ dpconf create-jdbc-table jdbc-salary salary
SQL 테이블의 각 열에 대한 JDBC 속성을 추가합니다.
$ dpconf add-jdbc-attr jdbc-employee eid employee_id $ dpconf add-jdbc-attr jdbc-employee first firstname $ dpconf add-jdbc-attr jdbc-employee last lastname $ dpconf add-jdbc-attr jdbc-employee description description $ dpconf add-jdbc-attr jdbc-employee spouse spousename $ dpconf add-jdbc-attr jdbc-salary salary salary $ dpconf add-jdbc-attr jdbc-salary social ssn
JDBC 데이터 보기를 통해 보기 가능한 속성과 쓰기 가능한 속성을 지정합니다.
$ dpconf set-jdbc-data-view-prop payroll-view \ viewable-attr:eid viewable-attr:first viewable-attr:last viewable-attr:desc viewable-attr:spouse viewable-attr:salary viewable-attr:social $ dpconf set-jdbc-data-view-prop payroll-view \ writable-attr:eid writable-attr:first writable-attr:last writable-attr:description writable-attr:spouse writable-attr:salary writable-attr:social
LDAP 객체 클래스에 매핑되는 JDBC 객체 클래스를 만듭니다.
다음 명령은 LDAP person 객체 클래스에 매핑되는 객체 클래스를 만듭니다. 객체 클래스는 직원 테이블을 기본 테이블로 사용하고 급여 테이블을 보조 테이블로 사용해야 함을 지정합니다. eid 속성을 사용하여 DN을 구성해야 합니다.
$ dpcfg create-jdbc-object-class payroll-view \ person jdbc-employee jdbc-salary eid
보조 테이블의 데이터가 기본 테이블의 데이터에 연결되는 방법을 지정하는 필터 결합 규칙을 보조 테이블에서 만듭니다.
다음 결합 규칙은 employee_id 속성을 기준으로 데이터를 결합해야 함을 지정합니다.
$ dpconf set-jdbc-table-prop jdbc-salary filter-join-rule:'employee_id=\${employee.employee_id}'
JDBC 객체 클래스에서 수퍼 클래스를 만듭니다.
$ set-jdbc-object-class-prop payroll-view person super-class:extensibleObject