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

讓 LDAP 用戶端存取 SQL 資料庫中的薪資部門資料

Example.com 的薪資部門將薪水資料儲存在 SQL 資料庫中。該資料庫有兩個表格,分別為 employee 表格與 salary 表格。Example.com 具有要求能夠存取那些資料的 LDAP 用戶端應用程式。用戶端應用程式要求 SQL 資料必須類似於 LDAP 資料。

下圖說明用戶端應用程式的需求。

圖 23–7 提供 SQL 資料庫存取的 JDBC 資料檢視

該圖顯示提供 SQL 資料庫存取的 JDBC 資料檢視

若要滿足此應用程式需求,必須建立 JDBC 資料檢視將 SQL 表格中的欄對映至 LDAP 屬性。

為簡便起見,本節中所用的指令假設下列資訊:

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。

    $ 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