Sun Java System Directory Server Enterprise Edition 6.3 管理指南

使 LDAP 客户端可以访问 SQL 数据库中的薪酬数据

Example.com 的薪酬部门将薪水数据存储在 SQL 数据库中。该数据库有两个表,即 employee 表和 salary 表。Example.com 具有需要访问这些数据的 LDAP 客户端应用程序。该客户端应用程序要求 SQL 数据类似于 LDAP 数据。

下图说明了此客户端应用程序的要求。

图 23–7 提供 SQL 数据库访问的 JDBC 数据视图

图中显示了提供 SQL 数据库访问的 JDBC 数据视图

要满足此应用程序要求,需要创建一个将 SQL 表中的列映射到 LDAP 属性的 JDBC 数据视图。

为了简单起见,本部分中使用的命令假定运行环境如下:

Procedure为 Example.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。

    $ dpconf 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 对象类上创建超类。

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