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

Procedure配置 JDBC 数据视图

  1. 为 SQL 数据库创建名为 mysql1 的 JDBC 数据源。


    % dpconf create-jdbc-data-source -b sample_sql \
     -B jdbc:mysql://host2.example.com:3306/ \
     -J file:/net/host2.example/local/mysql/lib/jdbc.jar \
     -S com.mysql.jdbc.Driver mysql1
  2. 指定该 SQL 数据库的用户名和密码文件。


    % dpconf set-jdbc-data-source-prop mysql1 db-pwd-file:sqlpwd.txt db-user:root
  3. 重新启动代理服务器。


    % dpadm restart /local/dps
  4. 启用该数据源,并允许对其执行写入操作。


    % dpconf set-jdbc-data-source-prop mysql1 is-enabled:true is-read-only:false
  5. 创建名为 mysql1–pool 的 JDBC 数据源池。


    % dpconf create-jdbc-data-source-pool mysql1-pool
  6. 将 JDBC 数据源连接到此数据源池。


    % dpconf attach-jdbc-data-source mysql1-pool mysql1
  7. 为数据源池创建名为 myjdbc1–view 且基 DN 为 o=sql 的 JDBC 数据视图。


    % dpconf create-jdbc-data-view mysql1-view mysql1-pool o=sql
  8. 为 MySQL 数据库中的每个表创建 JDBC 表。


    % dpconf create-jdbc-table employee1 EMPLOYEE
    % dpconf create-jdbc-table country1 COUNTRY
    % dpconf create-jdbc-table phone1 PHONE

    SQL 数据库中的表名区分大小写。请确保您使用的大小写与 SQL 数据库中使用的相同。

  9. 为每个表中的每一列创建 JDBC 属性。

    创建 JDBC 属性会将 MySQL 列映射到 LDAP 属性。


    % dpconf add-jdbc-attr employee1 uid ID
    % dpconf add-jdbc-attr employee1 sn SURNAME
    % dpconf add-jdbc-attr employee1 userPassword PASSWORD
    % dpconf add-jdbc-attr employee1 roomNumber ROOM
    % dpconf add-jdbc-attr phone1 telephoneNumber NUMBER
    % dpconf add-jdbc-attr country1 countryName NAME

    无需为 phone1 user_idcountry1 id 列创建 JDBC 属性,因为这些列仅包含用于 EMPLOYEE.ID(已为其创建 LDAP 属性 uid)中的值。

  10. 为 LDAP person 对象类创建 JDBC 对象类。

    在此步骤中,employee1 表被标识为主表,而 country1phone1 表被标识为从表。创建 JDBC 对象类时也需要 DN。在此示例中,DN 是通过数据视图的 uid 属性和基 DN 构建的。


    % dpconf create-jdbc-object-class mysql1-view person employee1 country1 phone1 uid
  11. 定义主表和从表之间的联接规则。

    联接规则在从表上进行定义,用于确定该表中的数据如何链接到主表数据。


    % dpconf set-jdbc-table-prop country1 filter-join-rule:ID=\${EMPLOYEE.COUNTRY_ID}
    % dpconf set-jdbc-table-prop phone1 filter-join-rule:USER_ID=\${EMPLOYEE.ID}
  12. 指定 JDBC 对象类的超类。

    超类表示 JDBC 对象类从中继承属性的 LDAP 对象类。


    % dpconf set-jdbc-object-class-prop mysql1-view person super-class:top