Example.com 的薪資部門將薪水資料儲存在 SQL 資料庫中。該資料庫有兩個表格,分別為 employee 表格與 salary 表格。Example.com 具有要求能夠存取那些資料的 LDAP 用戶端應用程式。用戶端應用程式要求 SQL 資料必須類似於 LDAP 資料。
下圖說明用戶端應用程式的需求。
若要滿足此應用程式需求,必須建立 JDBC 資料檢視將 SQL 表格中的欄對映至 LDAP 屬性。
為簡便起見,本節中所用的指令假設下列資訊:
目錄代理伺服器實例在本機上執行,並具有預設 LDAP 連接埠 (389)。
目錄代理伺服器實例位於 /local/myDPS。
已將包含代理伺服器管理員密碼之檔案的路徑設定為變數 LDAP_ADMIN_PWF。如需有關設定目錄代理伺服器環境變數的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 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。
$ dpcfg 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 物件類別的超級類別。
$ set-jdbc-object-class-prop payroll-view person super-class:extensibleObject