Sun Java System Directory Server Enterprise Edition 6.1 管理ガイド

LDAP クライアントによる SQL データベース内の給与データへのアクセスの有効化

Example.com の給与部門は給与データを SQL データベースに保存しています。データベースには、employee テーブルと salary テーブルの 2 つのテーブルがあります。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. 仮想 DN の o=payroll で給与データベースの 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