为 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 |
指定该 SQL 数据库的用户名和密码文件。
% dpconf set-jdbc-data-source-prop mysql1 db-pwd-file:sqlpwd.txt db-user:root |
重新启动代理服务器。
% dpadm restart /local/dps |
启用该数据源,并允许对其执行写入操作。
% dpconf set-jdbc-data-source-prop mysql1 is-enabled:true is-read-only:false |
创建名为 mysql1–pool 的 JDBC 数据源池。
% dpconf create-jdbc-data-source-pool mysql1-pool |
将 JDBC 数据源连接到此数据源池。
% dpconf attach-jdbc-data-source mysql1-pool mysql1 |
为数据源池创建名为 myjdbc1–view 且基 DN 为 o=sql 的 JDBC 数据视图。
% dpconf create-jdbc-data-view mysql1-view mysql1-pool o=sql |
为 MySQL 数据库中的每个表创建 JDBC 表。
% dpconf create-jdbc-table employee1 EMPLOYEE % dpconf create-jdbc-table country1 COUNTRY % dpconf create-jdbc-table phone1 PHONE |
SQL 数据库中的表名区分大小写。请确保您使用的大小写与 SQL 数据库中使用的相同。
为每个表中的每一列创建 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_id 和 country1 id 列创建 JDBC 属性,因为这些列仅包含用于 EMPLOYEE.ID(已为其创建 LDAP 属性 uid)中的值。
为 LDAP person 对象类创建 JDBC 对象类。
在此步骤中,employee1 表被标识为主表,而 country1 和 phone1 表被标识为从表。创建 JDBC 对象类时也需要 DN。在此示例中,DN 是通过数据视图的 uid 属性和基 DN 构建的。
% dpconf create-jdbc-object-class mysql1-view person employee1 country1 phone1 uid |
定义主表和从表之间的联接规则。
联接规则在从表上进行定义,用于确定该表中的数据如何链接到主表数据。
% 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} |
指定 JDBC 对象类的超类。
超类表示 JDBC 对象类从中继承属性的 LDAP 对象类。
% dpconf set-jdbc-object-class-prop mysql1-view person super-class:top |