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.3 Installation Guide》中的“Environment Variables”。
SQL 数据库已打开并正在运行。
JAVA_HOME 变量已设置为正确的 Java 路径。
SQL 数据库密码是存储在 myPasswordFile 文件中的 myPassword。
为薪酬数据库创建 JDBC 数据源。
$ dpconf create-jdbc-data-source -b payrollsqldb \ -B jdbc:payrollsqldb:payrollsql://localhost/ \ -J file://payrollsqldb.jar \ -S org.payrollsqldb.jdbcDriver payroll-src
使用 SQL 数据库的属性配置 JDBC 数据源。
$ dpconf set-jdbc-data-source-prop payroll-src \ db-user:proxy db-pwd-file:password-file-location/myPasswordFile
启用 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
使用虚拟 DN o=payroll 为薪酬数据库创建 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。
$ dpconf 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 对象类上创建超类。
$ dpconf set-jdbc-object-class-prop payroll-view person super-class:extensibleObject