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

通过 LDAP 管理对象类

本部分介绍如何通过 LDAP 创建、查看和删除对象类。

创建对象类

cn=schema 条目具有多值属性 objectClasses,该属性包含目录模式中每个对象类的定义。可以使用 ldapmodify(1) 命令添加这些定义。

新的对象类定义以及您对用户定义的对象类所做的更改都保存在 99user.ldif 文件中。

如果您要创建继承其他对象类的多个对象类,则必须先创建父对象类。如果新对象类使用自定义属性,还必须首先定义这些属性。

至少要为每个对象类定义提供一个 OID。请考虑至少为新对象类使用以下元素:

Procedure创建对象类

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

  1. 根据 RFC 4517 中指定的语法准备对象类定义。

  2. 使用 ldapmodify(1) 命令添加对象类定义。

    请注意,目录服务器会将 X-ORIGIN 'user defined' 添加到您提供的定义中。


示例 12–4 创建对象类

以下示例使用 ldapmodify 命令添加新对象类:


$ cat blogger.ldif 
dn: cn=schema
changetype: modify
add: objectClasses
objectClasses: ( 1.2.3.4.5.6.8 
 NAME 'blogger' 
 DESC 'Someone who has a blog' 
 SUP inetOrgPerson 
 STRUCTURAL 
 MAY blog )

$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -f blogger.ldif
Enter bind password: 
modifying entry cn=schema

$

在生产环境中,应该提供唯一的有效 OID,而不是 1.2.3.4.5.6.8


查看对象类

cn=schema 条目具有多值属性 objectClasses,该属性包含目录模式中每个对象类的定义。可以使用 ldapsearch(1) 命令读取这些定义。

Procedure查看对象类

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

  1. 使用 ldapsearch 命令查看您的目录模式中当前存在的所有对象类定义。


示例 12–5 查看对象类

以下命令显示所有对象类的定义:


$ ldapsearch -T -b cn=schema "(objectclass=*)" objectClasses

-T 选项可阻止 ldapsearch 命令折叠 LDIF 行,以便您更容易地使用 grepsed 等命令处理输出。这样,如果您通过 grep 命令输送此命令的输出,则可以只查看目录模式中用户定义的扩展部分。例如:


$ ldapsearch -T -b cn=schema "(objectclass=*)" objectClasses | grep "user defined"
objectClasses: ( 1.2.3.4.5.6.8 NAME 'blogger'
 DESC 'Someone who has a blog' STRUCTURAL MAY blog
 X-ORIGIN 'user defined' )
$ 

删除对象类

cn=schema 条目具有多值属性 objectClasses,该属性包含目录模式中每个对象类的定义。可以使用 ldapmodify(1) 命令删除具有 X-ORIGIN 'user defined' 的定义。

由于模式是由 LDAP 视图在 cn=schema 中定义的,因此您可以使用 ldapsearchldapmodify 实用程序联机查看和修改模式。但是,您只能删除 X-ORIGIN 字段值为 'user defined' 的模式元素。服务器不会删除其他定义。

对用户定义元素所做的更改将保存在 99user.ldif 文件中。

Procedure删除对象类

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

  1. 查看要删除的对象类的定义。

    有关详细信息,请参见查看对象类

  2. 使用 ldapmodify(1) 命令删除模式中出现的对象类定义。


示例 12–6 删除对象类

以下命令将删除在示例 12–4中创建的对象类:


$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password: 
dn: cn=schema
changetype: delete
delete: objectClasses
objectClasses: ( 1.2.3.4.5.6.8 NAME 'blogger' DESC 'Someone who has a blog' 
 STRUCTURAL MAY blog X-ORIGIN 'user defined' )
^D

请注意,必须包括由目录服务器添加的 X-ORIGIN 'user defined'(用于将此模式定义归类为扩展)。