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

Procedure配置 JDBC 表格、屬性與物件類別

配置 JDBC 資料檢視時,必須同時配置下列物件:

  1. 為關聯式資料庫中的每個表格建立 JDBC 表格。


    % dpconf create-jdbc-table jdbc-table-name db-table
    

    db-table 的名稱區分大小寫。請確保使用與關聯式資料庫中相同的大小寫,否則以該表格為目標的作業可能會失敗。

  2. 為各關聯式資料庫表格中的每一欄建立 JDBC 屬性。


    % dpconf add-jdbc-attr table-name attr-name sql-column
    

    建立 JDBC 屬性會將表格欄對映至 LDAP 屬性。

  3. (可選擇) 如果關聯式資料庫中的欄區分大小寫,請變更 JDBC 屬性的 LDAP 語法。


    % dpconf set-jdbc-attr-prop table-name attr-name ldap-syntax:ces

    依預設,ldap-syntax 的值為 cis。這表示 jdbc-attr 不區分大小寫。如果關聯式資料庫區分大小寫,請將該值變更為 ces

    某些關聯式資料庫 (例如 Oracle 與 DB2) 預設為區分大小寫。依預設,LDAP 不區分大小寫。當目錄代理伺服器偵測到關聯式資料庫表格的某欄區分大小寫時,會將篩選內具有對應屬性的 ldapsearch 查詢轉譯為使用 UPPER 函數的 SQL 查詢。

    例如,將查詢 ldapsearch -b "dc=mysuffix" "(attr=abc)" 轉譯為下列 SQL 查詢:


    SELECT * FROM mytable WHERE (UPPER(attr)='ABC')

    依預設,不編製此類查詢的索引。因此,會嚴重影響此類查詢的效能。

    有兩種方法可以減輕對效能的影響:

    • 透過將 jdbc-attr 的 ldap-syntax 特性設為 ces

    • 透過使用 UPPER 函數為每個 jdbc-attr 編製 LDAP 篩選可能會使用的索引。

  4. 為 LDAP 關聯式資料庫表格建立 JDBC 物件類別。


    % dpconf create-jdbc-object-class view-name objectclass primary-table \
      [secondary-table... ] DN-pattern
    

    建立 JDBC 物件類別本質上是指定將與這些表格相關聯的 LDAP 物件類別。JDBC 物件類別還指定主要表格與輔助表格 (如果存在)。

    在建立 JDBC 物件類別時,指定 DN 模式。DN 模式顯示項目 DN 的建構方式。

  5. 如果存在輔助表格,請定義主要表格與輔助表格之間的連結規則。


    % dpconf set-jdbc-table-prop secondary-table-name filter-join-rule:join-rule
    

    連結規則定義於輔助表格上,並確定輔助表格的資料如何連結至主要表格的資料。如何定義物件類別的主要與輔助表格之間的關係頗為重要。如需詳細資訊,請參閱定義 JDBC 表格之間的關係

  6. 指定 JDBC 物件類別的超級類別。


    % dpconf set-jdbc-object-class-prop view-name objectclass super-class:value
    

    超級類別表示 JDBC 物件類別從其繼承的 LDAP 物件類別。