Sun Java System Directory Server Enterprise Edition 6.2 管理ガイド

ProcedureJDBC データビューを設定する

  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. ベース DN が o=sqlmyjdbc1–view という名前のデータソースプールの 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 room ROOM
    % dpconf add-jdbc-attr phone1 tel NUMBER
    % dpconf add-jdbc-attr country1 country NAME

    phone1 user_id 列と country1 id 列は MySQL データベースのコンテキストでのみ使用されるため、これらの列の JDBC 属性を必ずしも作成する必要はありません。これらには、対応する LDAP 属性がありません。

  10. LDAP person オブジェクトクラスに対して JDBC オブジェクトクラスを作成します。

    ここでは、employee1 テーブルを一次テーブル、country1 テーブルと phone1 テーブルを二次テーブルとします。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