Sun Java System Directory Server Enterprise Edition 6.2 관리 설명서

SQL 데이터베이스의 급여 데이터에 액세스할 수 있도록 LDAP 클라이언트 활성화

Example.com의 급여 부서는 급여 데이터를 SQL 데이터베이스에 저장합니다. 이 데이터베이스에는 두 개의 테이블(employeesalary)이 있습니다. Example.com에는 해당 데이터에 대한 액세스 권한을 필요로 하는 LDAP 클라이언트 응용 프로그램이 있습니다. 이 클라이언트 응용 프로그램의 경우 SQL 데이터의 모양이 LDAP 데이터와 같아야 합니다.

다음 다이어그램은 클라이언트 응용 프로그램의 요구 사항을 보여줍니다.

그림 23–7 SQL 데이터베이스에 대한 액세스를 제공하는 JDBC 데이터 보기

SQL 데이터베이스에 대한 액세스를 제공하는 JDBC 데이터 보기를 보여주는 그림

이 응용 프로그램의 요구 사항을 충족하기 위해 SQL 테이블의 열을 LDAP 속성에 매핑하는 JDBC 데이터 보기가 만들어집니다.

단순하게 만들기 위해 이 절에 사용된 명령은 다음 정보를 가정합니다.

ProcedureExample.com의 급여 데이터베이스에 대한 JDBC 데이터 보기 만들기

  1. 급여 데이터베이스에 대한 JDBC 데이터 소스를 만듭니다.

    $ dpconf create-jdbc-data-source -b payrollsqldb \
      -B jdbc:payrollsqldb:payrollsql://localhost/ \
      -J file://payrollsqldb.jar \
      -S org.payrollsqldb.jdbcDriver payroll-src 
  2. SQL 데이터베이스의 등록 정보를 사용하여 JDBC 데이터 소스를 구성합니다.

    $ dpconf set-jdbc-data-source-prop payroll-src \
      db-user:proxy
      db-pwd-file:password-file-location/myPasswordFile
  3. JDBC 데이터 소스를 활성화합니다.

    $ dpconf set-jdbc-data-source-prop payroll-src is-enabled:true
  4. 급여 데이터베이스에 대한 JDBC 데이터 소스 풀을 만듭니다.

    $ dpconf create-jdbc-data-source-pool payroll-pool
  5. 급여 데이터 소스를 데이터 소스 풀에 첨부합니다.

    $ dpconf attach-jdbc-data-source payroll-pool payroll-src
  6. o=payroll의 가상 DN을 사용하여 급여 데이터베이스에 대한 JDBC 데이터 보기를 만듭니다.

    $ dpconf create-jdbc-data-view payroll-view payroll-pool o=payroll
  7. SQL 데이터베이스의 각 테이블에 대한 JDBC 테이블을 만듭니다.

    $ dpconf create-jdbc-table jdbc-employee employee
    $ dpconf create-jdbc-table jdbc-salary salary
  8. 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
  9. 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
  10. LDAP 객체 클래스에 매핑되는 JDBC 객체 클래스를 만듭니다.

    다음 명령은 LDAP person 객체 클래스에 매핑되는 객체 클래스를 만듭니다. 객체 클래스는 직원 테이블을 기본 테이블로 사용하고 급여 테이블을 보조 테이블로 사용해야 함을 지정합니다. eid 속성을 사용하여 DN을 구성해야 합니다.

    $ dpcfg create-jdbc-object-class payroll-view \
     person jdbc-employee jdbc-salary eid
  11. 보조 테이블의 데이터가 기본 테이블의 데이터에 연결되는 방법을 지정하는 필터 결합 규칙을 보조 테이블에서 만듭니다.

    다음 결합 규칙은 employee_id 속성을 기준으로 데이터를 결합해야 함을 지정합니다.

    $ dpconf set-jdbc-table-prop jdbc-salary \
    filter-join-rule:'employee_id=\${employee.employee_id}'
  12. JDBC 객체 클래스에서 수퍼 클래스를 만듭니다.

    $ set-jdbc-object-class-prop payroll-view person super-class:extensibleObject