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

实现 uid 和其他属性的唯一性

部分说明如何为 uid 属性启用和配置默认唯一性插件,以及如何实现任何其他属性的唯一性。

Procedure实现 uid 属性的唯一性

此过程说明如何使用 dsconf 命令启用和配置 UID 唯一性插件。此插件配置条目的 DN 为 cn=uid uniqueness,cn=plugins,cn=config

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

使用 DSCC 时,不得修改默认的 UID 唯一性插件以实现其他属性的唯一性。如果不需要使用 UID 唯一性插件,请将此插件保留为禁用状态,并为其他属性创建新的插件实例,如实现其他属性的唯一性所述。

  1. 启用插件。


    $ dsconf enable-plugin -h host -p port "uid uniqueness"
  2. 根据要实现唯一性的子树的指定方式,修改插件参数。

    • 要指定单个子树的基 DN,请键入:


      $ dsconf set-plugin-prop -h host -p port "uid uniqueness" argument:uid argument:subtreeBaseDN
      

      例如:


      $ dsconf set-plugin-prop -h host1 -p 1389 "uid uniqueness" argument:uid \
       argument:dc=People,dc=example,dc=com
    • 要指定多个子树,请添加更多的参数,并将子树的完整基 DN 作为每个参数的值。


      $ dsconf set-plugin-prop -h host -p port "uid uniqueness" argument:uid \
       argument:subtreeBaseDN argument:subtreeBaseDN
      
    • 要根据子树基条目的对象类指定这些子树,请将参数设置为以下值。将在每个具有 baseObjectClass 的条目下的子树中实现 uid 属性唯一性。也可以选择在第三个参数中指定 entryObjectClass,以便插件只在特定操作(以具有此对象类的条目为目标)中实现唯一性。


      $ dsconf set-plugin-prop -h host -p port "uid uniqueness" argument:attribute=uid \
       argument:markerObjectClass=baseObjectClass argument:entryObjectClass=baseObjectClass
      
    • 要在现有参数列表中添加参数,请使用以下命令:


      $ dsconf set-plugin-prop -h host -p port "uid uniqueness" argument+:argument-value
      
  3. 重新启动服务器以使更改生效。

Procedure实现其他属性的唯一性

UID 唯一性插件可用于实现任何属性的唯一性。您必须在目录的 cn=plugins,cn=config 下创建新条目,以创建此插件的新实例。

无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。

  1. 创建新插件。


    $ dsconf create-plugin -h host -p port -H lib-path -F init-func \
     -Y type plugin-name 
    

    plugin-name 应该是简短的描述性名称,其中包含属性名称。例如,要创建一个插件以实现邮件 ID 属性的唯一性,请使用以下命令:


    $ dsconf create-plugin -h host1 -p 1389 -H /opt/SUNWdsee/ds6/lib/uid-plugin.so \
     -F NSUniqueAttr_Init -Y preoperation "mail uniqueness"
  2. 设置插件属性。


    $ dsconf set-plugin-prop -h host -p port plugin-name property:value
    

    例如,要设置邮件唯一性插件的属性,请使用以下命令:


    $ dsconf set-plugin-prop -h host1 -p 1389 "mail uniqueness" \
     desc:"Enforce unique attribute values..." version:6.0 \
     vendor:"Sun Microsystems, Inc." depends-on-type:database
  3. 启用插件。


    $ dsconf enable-plugin -h host -p port plugin-name
    
  4. 指定插件参数。

    这些参数取决于要实现唯一性的子树的确定方式。

    • 要根据子树的基 DN 定义一个或多个子树,则第一个参数必须是应具有唯一值的属性的名称。后面的参数是这些子树基条目的完整 DN。


      $ dsconf set-plugin-prop -h host -p port plugin-name argument:attribute-name \
       argument:subtreeBaseDN argument:subtreeBaseDN...
    • 要在现有参数列表中添加参数,请使用以下命令:


      $ dsconf set-plugin-prop -h host -p port plugin-name argument+:argument-value
      
    • 要根据子树基条目的对象类定义子树,则第一个参数必须包含 attribute=attribute-name(用于指定应具有唯一值的属性的名称)。第二个参数必须是 baseObjectClass(用于确定要实现唯一性的子树的基条目)。也可以选择在第三个参数中指定 entryObjectClass,以便插件只在特定操作(以具有此对象类的条目为目标)中实现唯一性。


      $ dsconf set-plugin-prop -h host -p port plugin-name argument:attribute=attribute-name \
       argument:markerObjectClass=baseObjectClass argument:requiredObjectClass=entryObjectClass
      

    在所有插件参数中,= 符号的前后不能出现空格。

  5. 重新启动服务器以使更改生效。