人力资源部门存储员工姓名、入职数据和职务级别等信息。管理部门存储大楼代码和办公室编号等其他信息。处理人力资源数据的客户端应用程序需要访问来自这两个数据源的组合数据。这两个数据源有一个公用属性 employeeNumber,即每个条目中都具有该属性 。
下图说明了此客户端应用程序的要求。
要满足此应用程序要求,需要为薪酬目录和管理 LDIF 文件各创建一个数据视图。然后将这两个数据视图联接在一起,以提供对聚合数据的访问。目录代理服务器可以使用此公用属性聚合每个用户的数据。
为了简单起见,本部分中使用的命令假定运行环境如下:
目录代理服务器实例通过默认 LDAP 端口 (389) 在本地主机上运行。
目录代理服务器实例位于 /local/myDPS 中。
包含代理管理员密码的文件所在的路径已被设置为变量 LDAP_ADMIN_PWF。有关设置目录代理服务器环境变量的详细信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Installation Guide》中的“Environment Variables”。
薪酬部门的 LDAP 目录通过端口 2389 在名为 payrollHost 的主机上运行。
用于存储管理数据的 LDIF 文件名为 example.ldif。
要获取每个命令的完整语法,请运行不含任何选项的命令。例如:
$ dpconf create-ldap-data-view Operands are missing Usage: dpconf create-ldap-data-view VIEW_NAME POOL_NAME SUFFIX_DN
为薪酬目录创建 LDAP 数据源。
$ dpconf create-ldap-data-source payroll-directory payrollHost:2389
为薪酬目录创建 LDAP 数据源池。
$ dpconf create-ldap-data-source-pool payroll-pool
将薪酬数据源连接到此数据源池。
$ dpconf attach-ldap-data-source payroll-pool payroll-directory
配置连接数据源的权重。
$ dpconf set-attached-ldap-data-source-prop -h payrollHost -p 2389 \ payroll-pool payroll-directory add-weight:2 \ bind-weight:2 compare-weight:2 delete-weight:2 \ modify-dn-weight:2 modify-weight:2 search-weight:2
为薪酬目录创建 LDAP 数据视图。
$ dpconf create-ldap-data-view payroll-view payroll-pool o=example.com
启用 LDAP 数据视图,以便客户端请求可以路由到此数据视图。
$ dpconf set-ldap-data-view-prop payroll-view is-enabled:true
重新启动目录代理服务器以使更改生效。
$ dpadm restart /local/myDPS
为管理数据创建 LDIF 数据视图。
$ dpconf create-ldif-data-view admin-view example.ldif dc=example,dc=com
启用管理数据的 LDIF 数据视图。
$ dpconf set-ldif-data-view-prop admin-view is-enabled:true
指定管理视图包含可由薪酬视图中的多个条目使用的条目。
$ dpconf set-ldif-data-view-prop admin-view contains-shared-entries:true
此属性设置为 TRUE 时,删除薪酬数据视图中的条目不会导致管理数据视图中的共享条目被删除。向薪酬数据视图添加条目只会将该条目添加到从数据视图(如果该条目尚不存在)。
重新启动目录代理服务器以使更改生效。
$ dpadm restart /local/myDPS
在管理数据视图上创建过滤器联接规则,该规则指定数据的聚合方式。
以下联接规则指定应该根据用户条目的 employeeNumber 属性联接数据。
$ dpconf set-ldif-data-view-prop admin-view \ filter-join-rule:employeeNumber=\${payroll-view.employeeNumber}
创建聚合这两个数据视图的联接数据视图。
对于该联接数据视图,组织将使用后缀 DN dc=example,dc=com。
$ dpconf create-join-data-view example-join-view payroll-view admin-view \ dc=example,dc=com