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

ProcedureJDBC 테이블, 속성 및 객체 클래스 구성

JDBC 데이터 보기를 구성할 경우에는 다음 객체도 구성해야 합니다.

  1. 관계형 데이터베이스에서 각 테이블에 대한 JDBC 테이블을 만듭니다.


    % dpconf create-jdbc-table jdbc-table-name db-table
    

    db-table의 이름은 대소문자를 구분합니다. 관계형 데이터베이스에 사용된 것과 동일한 대소문자를 사용해야 하며, 그렇지 않으면 해당 테이블에 대한 작업이 실패할 수 있습니다.

  2. 각 관계형 데이터베이스 테이블에서 각 열에 대한 JDBC 속성을 만듭니다.


    % dpconf add-jdbc-attr table-name attr-name sql-column
    

    JDBC 속성을 만들면 테이블 열이 LDAP 속성에 매핑됩니다.

  3. (옵션) 관계형 데이터베이스의 열이 대소문자를 구분할 경우 JDBC 속성의 LDAP 구문을 변경합니다.


    % dpconf set-jdbc-attr-prop table-name attr-name ldap-syntax:ces

    ldap-syntax의 값은 기본적으로 cis입니다. 이는 jdbc-attr이 대소문자를 구분하지 않는다는 것을 의미합니다. 관계형 데이터베이스가 대소문자를 구분할 경우 값을 ces로 변경합니다.

    Oracle 및 DB2와 같은 특정 관계형 데이터베이스는 기본적으로 대소문자를 구분합니다. LDAP는 기본적으로 대소문자를 구분하지 않습니다. 디렉토리 프록시 서버에서 관계형 데이터베이스 테이블의 열이 대소문자를 구분한다는 것을 감지하는 경우 필터에서 해당 속성이 있는 ldapsearch 쿼리가 UPPER 함수를 사용하여 SQL 쿼리로 변환됩니다.

    예를 들어 ldapsearch -b "dc=mysuffix" "(attr=abc)" 쿼리는 다음 SQL 쿼리로 변환됩니다.


    SELECT * FROM mytable WHERE (UPPER(attr)='ABC')

    기본적으로 이 유형의 쿼리는 색인화되지 않습니다. 따라서 이 특성을 가진 쿼리는 성능에 큰 영향을 줄 수 있습니다.

    다음 두 가지 방법으로 성능에 미치는 영향을 줄일 수 있습니다.

    • jdbc-attr의 ldap-syntax 등록 정보를 ces로 설정

    • LDAP 필터에서 사용할 수 있는 각 jdbc-attr에 대해 UPPER 함수를 사용하여 색인 만들기


    주 –

    관계형 데이터베이스가 대소문자를 구분하지 않는 경우 ldap-syntax를 기본값 즉, cis로 사용합니다. ldap-syntax:ces는 대소문자를 구분하지 않는 데이터베이스에서 지원되지 않습니다.


  4. LDAP 관계형 데이터베이스 테이블에 대한 JDBC 객체 클래스를 만듭니다.


    % dpconf create-jdbc-object-class view-name objectclass primary-table \
      [secondary-table... ] DN-pattern
    

    기본적으로 JDBC 객체 클래스를 만들면 해당 테이블과 연관되는 LDAP 객체 클래스가 지정됩니다. 또한 JDBC 객체 클래스는 기본 테이블과 보조 테이블을 지정합니다(있을 경우).

    JDBC 객체 클래스를 만들 때 DN 패턴을 지정합니다. DN 패턴은 항목의 DN을 구성하는 데 사용해야 하는 속성을 설명합니다. 예를 들어 DN 패턴을 uid로 지정하면 항목의 DN이 uid 속성 및 데이터 보기의 보기 기준을 사용하여 구성됩니다. 예를 들면 uid=bjensen,ou=people,dc=example,dc=com과 같습니다. DN 패턴으로 여러 속성을 만들 수 있습니다. 이 경우 속성을 ,(쉼표)로 구분해야 합니다. 예를 들어 DN 패턴을 uid,country로 지정하는 경우 데이터 보기에서 반환되는 항목의 DN은 uid=bjensen,country=America,ou=people,dc=example,dc=com입니다.

    JDBC 객체 클래스의 DN 패턴에서 정의된 모든 하위 트리 구성 요소에는 해당 구성 요소에 대해 정의된 JDBC 객체 클래스가 있어야 합니다. 예를 들어 JDBC 객체 클래스에 DN 패턴 uid,ou가 있는 경우 JDBC 객체 클래스 정의에는 DN 패턴 ou가 포함되어야 합니다. 디렉토리 프록시 서버에서는 올바로 구성된 DIT를 구성해야 합니다. 그렇지 않으면 ou=xxx,base-DN과 같은 값이 있는 하위 트리는 검색 결과로 반환되지 않습니다.

  5. 보조 테이블이 있을 경우 기본 테이블과 보조 테이블 간에 결합 규칙을 정의합니다.


    % dpconf set-jdbc-table-prop secondary-table-name filter-join-rule:join-rule
    

    결합 규칙은 보조 테이블에 정의되며 해당 테이블의 데이터가 기본 테이블의 테이터에 연결되는 방법을 결정합니다. 객체 클래스의 기본 테이블과 보조 테이블 간에 관계를 정의하는 방법은 중요합니다. 자세한 내용은 JDBC 테이블 간의 관계 정의를 참조하십시오.

  6. JDBC 객체 클래스에 대한 수퍼 클래스를 지정합니다.


    % dpconf set-jdbc-object-class-prop view-name objectclass super-class:value
    

    수퍼 클래스는 JDBC 객체 클래스가 상속하는 LDAP 객체 클래스를 나타냅니다.