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

创建和测试联接数据视图

Procedure创建联接数据视图

  1. 创建名为 myjoin1–view 的联接数据视图。

    将 LDAP 数据视图指定为主数据视图,将 JDBC 数据视图指定为从数据视图。


    % dpconf create-join-data-view myjoin1-view myds1-view mysql1-view o=join
  2. 在从数据视图上定义联接规则。

    以下联接规则指定从数据视图中条目的 uid 属性应该与主数据视图中条目的 uid 属性相匹配。


    % dpconf set-jdbc-data-view-prop mysql1-view filter-join-rule:uid=\${myds1-view.uid}
  3. 如果在联接数据视图上设置了过滤器联接规则,则需要在从数据视图上设置虚拟转换规则,以便能够在联接数据视图上添加条目。


    dpconf add-virtual-transformation secondary-view-name \
    write add-attr-value dn uid=\${uid}

    注 –

    如果未设置此规则,则无法在联接数据视图上添加条目。


  4. 定义可以通过联接数据视图从主数据视图读取以及向主数据视图写入的属性集。


    % dpconf set-ldap-data-view-prop myds1-view viewable-attr:dn \
    viewable-attr:cn viewable-attr:sn viewable-attr:givenName \
    viewable-attr:objectClass viewable-attr:ou viewable-attr:l \
    viewable-attr:uid viewable-attr:mail viewable-attr:telephoneNumber \
    viewable-attr:facsimileTelephoneNumber viewable-attr:roomNumber \
    viewable-attr:userPassword
    % dpconf set-ldap-data-view-prop myds1-view writable-attr:dn \
    writable-attr:cn writable-attr:sn writable-attr:givenName \
    writable-attr:objectClass writable-attr:ou writable-attr:l \
    writable-attr:uid writable-attr:mail writable-attr:telephoneNumber \
     writable-attr:facsimileTelephoneNumber writable-attr:roomNumber \
    writable-attr:userPassword

    这些定义仅适用于联接视图环境。默认情况下,如果直接访问 LDAP 数据视图,则可以读取和写入所有属性。

  5. 定义可以通过联接数据视图在从数据视图中读取以及向从数据视图写入的属性集。


    % dpconf set-jdbc-data-view-prop mysql1-view viewable-attr:dn \
     viewable-attr:objectclass viewable-attr:sn viewable-attr:roomNumber \
     viewable-attr:userpassword viewable-attr:jobtitle viewable-attr:countryName \
     viewable-attr:telephoneNumber
    % dpconf set-jdbc-data-view-prop mysql1-view writable-attr:dn \
    writable-attr:objectclass writable-attr:sn writable-attr:roomNumber \
    writable-attr:userpassword writable-attr:jobtitle \
    writable-attr:countryName writable-attr:telephoneNumber

    这些定义仅适用于联接视图环境。默认情况下,如果直接访问 JDBC 数据视图,则可以读取和写入所有属性。

Procedure创建所需的 ACI

  1. 以代理管理员身份添加一个允许匿名访问联接数据视图的全局 ACI。


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=myjoin1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=join") 
    (version 3.0; acl "anonymous_access"; allow(all) userdn="ldap:///anyone";)
    cn: myjoin1
  2. 将连接处理程序配置为使用之前添加的 ACI 池。


    % dpconf set-connection-handler-prop default-connection-handler aci-source:myjoin1

Procedure测试联接数据视图

  1. 以匿名用户身份搜索联接数据视图。

    在此步骤中,我们将搜索 Kirsten Vaughan 的条目,以查看是否会检索来自两个联接视图的数据。


    % ldapsearch -p 1389 -b o=join "uid=kvaughan"

    请注意,返回的条目包括来自 LDAP 数据视图和 JDBC 数据视图的属性。

  2. o=join 下的用户身份修改 userPassword 属性,以验证您是否可以向联接数据视图中写入内容。


    % ldapmodify -p 1389
    dn: uid=kvaughan,ou=people,o=join
    changetype: modify
    replace: userPassword
    userPassword: myPassword