联接数据视图是多个数据视图的聚合。有关联接数据视图的工作方式的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Join Data Views”。
有关如何创建和配置联接数据视图的信息,请参见以下过程。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
对将要聚合成联接视图的主数据视图和从数据视图进行标识。
在创建联接视图之前,必须存在主数据视图和从数据视图。主数据视图和从数据视图可以是任意类型的数据视图,包括 LDAP 数据视图、LDIF 数据视图、JDBC 数据视图或其他联接数据视图。必须在从视图上配置一些特定属性,以便将其作为联接视图的源。有关详细信息,请参见配置联接视图的从视图。
创建联接数据视图。
$ dpconf create-join-data-view -h host -p port view-name primary-view secondary-view \ suffix-dn |
(可选的)查看联接视图列表,以检查是否已成功创建数据视图。
$ dpconf list-join-data-views -h host -p port |
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
查看联接数据视图的属性。
$ dpconf get-join-data-view-prop -h host -p port view-name |
联接数据视图的默认属性如下所示:
alternate-search-base-dn : "" alternate-search-base-dn : dc=com attr-name-mappings : none base-dn : suffixDN contains-shared-entries : - description : - distribution-algorithm : - dn-join-rule : - dn-mapping-attrs : none dn-mapping-source-base-dn : none excluded-subtrees : - filter-join-rule : - is-enabled : true is-read-only : false is-routable : true join-rule-control-enabled : false lexicographic-attrs : all lexicographic-lower-bound : none lexicographic-upper-bound : none non-viewable-attr : - non-writable-attr : - numeric-attrs : all numeric-default-data-view : false numeric-lower-bound : none numeric-upper-bound : none pattern-matching-base-object-search-filter : all pattern-matching-dn-regular-expression : all pattern-matching-one-level-search-filter : all pattern-matching-subtree-search-filter : all primary-view : primary-view process-bind : - replication-role : master secondary-view : secondary-view viewable-attr : all except non-viewable-attr writable-attr : all except non-writable-attr |
更改步骤 1 中列出的一个或多个属性。
$ dpconf set-join-data-view-prop -h host -p port view-name property:value \ [property:value ... ] |
例如,要将数据源的主数据视图更改为 myLDAPDataView,请使用以下命令:
$ dpconf set-join-data-view-prop -h host1 -p 1389 -D cn="Proxy Manager" \ myJoinDataView primary-view:myLDAPDataView |
配置联接数据视图时,请在主数据视图和从数据视图上设置 viewable-attr 和 writable-attr 属性。
设置这些属性有助于在主数据视图和从数据视图上相应地拆分搜索过滤器。否则,当搜索过滤器包含来自从数据视图的属性时,搜索结果可能会出现不一致。
重新启动目录代理服务器实例以使更改生效(如有必要)。
有关重新启动目录代理服务器的信息,请参见重新启动目录代理服务器。
通过在联接数据视图中设置联接规则配置信息,可使多个联接数据视图能够引用该数据视图。要具备此功能,请执行以下操作:
在联接数据视图上,将 join-rule-control-enabled 设置为 true。
$ dpconf set-join-data-view-prop view-name join-rule-control-enabled:true |
将 join-rule-control-enabled 设置为 true 后,服务器将使用联接数据视图中存储的联接规则配置信息。如果联接数据视图的联接规则配置信息存储在从数据视图中,服务器将不会使用此信息。要让服务器使用此信息,您必须手动在联接数据视图级别添加此配置信息。
定义联接规则,以确定从视图与主视图的关联方式。
联接规则可为以下任一选项:
DN 联接规则
$ dpconf set-join-data-view-prop view-name \ dn-join-rule:uid=\${primary-view-name.uid},ou=People,dc=example |
过滤器联接规则
$ dpconf set-join-data-view-prop view-name \ filter-join-rule:uid=\${primary-view-name.uid} |
在以上命令中,属性名称是作为变量括在 ${} 中的。如果不使用括在 ${} 中的属性名称,则会将该属性名称视为常量。
如果在 Unix 中使用 bash 或 ksh,应采用 \ 对 $ 字符进行转义,例如 \${primary-view-name .uid} 之类的结构;而在 Windows 中,则不需要进行转义。
必须在从数据视图上配置一些特定属性,以便将其作为联接视图的源。由于从视图可以是任意类型的数据视图,因此您所使用的命令取决于数据视图类型。以下样例命令假定从视图为 LDAP 数据视图。有关此处介绍的属性的详细信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Additional Secondary Data View Properties”。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
定义联接规则,以确定从视图与主视图的关联方式。
切勿对联接视图的主数据视图设置 filter-join-rule 和 dn-join-rule。
联接规则可为以下任一选项:
DN 联接规则
$ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name \ dn-join-rule:uid=\${primary-view-name.uid},ou=People,dc=example |
过滤器联接规则
$ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name \ filter-join-rule:uid=\${primary-view-name.uid} |
仅当联接数据视图上的 join-rule-control-enabled 属性设置为 false 时,服务器才会使用 dn-join-rule 和 filter-join-rule 属性的配置。否则,如果在联接数据视图上将 join-rule-control-enabled 属性设置为 true,将忽略在从视图上设置的此信息。
如果在联接数据视图上设置了过滤器联接规则,则需要在从数据视图上设置虚拟转换规则,以便能够在联接数据视图上添加条目。
dpconf add-virtual-transformation secondary-view-name \ write add-attr-value dn uid=\${uid} |
如果未设置此规则,则无法在联接数据视图上添加条目。
(可选的)指定从视图上是否允许绑定。
默认情况下,所有数据视图上都允许绑定。如果您要禁止绑定到从数据视图,请运行以下命令:
$ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name process-bind:false |
有关此属性的详细信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Handling of Binds”。
(可选的)指定从视图是否包含共享条目。
$ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name \ contains-shared-entries:true |
有关此属性的详细信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Handling of Shared Entries”。