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

关于自定义模式

如果标准模式无法满足您的目录需求,则可以扩展标准模式。自定义模式时应遵循以下准则:

自定义模式时,不要修改、删除或替换标准模式中属性或对象类的任何现有定义。否则,可能会导致与其他目录和 LDAP 客户端应用程序的兼容性问题。

不要修改任何目录服务器内部操作属性。但是,您可以创建自己的操作变量以用于外部应用程序。

应始终定义对象类,而不要使用 objectClass: extensibleObject。目录服务器不会对具有对象类 extensibleObject 的条目执行模式检查,因此不会限制或检查该条目中存在的属性。目录服务器无法检测到应用程序中的拼写错误,例如,将 givenName 属性类型写成 giveName。此外,目录服务器还必须假定 extensibleObject 条目所有其他未定义的属性都是多值属性,并且使用区分大小写的字符串语法。而且,某些应用程序依赖于具有特定对象类的条目。通常,如果您的应用程序要求扩展对象类,请不要放弃模式管理,而应创建一个包含该应用程序所需属性的辅助对象类。

本部分包含有关默认目录模式以及创建自定义属性和对象类的信息。

默认目录服务器模式

instance-path/config/schema/ 目录中存储的一组文件对目录服务器随附的模式进行了介绍。

此目录包含目录服务器和相关产品的所有通用模式。LDAP v3 标准用户和组织模式位于 00core.ldif 文件中。此目录的早期版本所使用的配置模式位于 50ns-directory.ldif 文件中。


注 –

当服务器正在运行时,不要修改此目录中的文件。


对象标识符

必须为每个 LDAP 对象类或属性指定唯一的名称和对象标识符 (object identifier, OID)。定义模式时,您需要一个在组织中具有唯一性的 OID。一个 OID 即可满足您的所有模式需求。然后,您可以在该 OID 上为您的属性和对象类添加新的分支。

获取和指定模式中的 OID 时,您需要执行以下操作:

命名属性和对象类

创建新属性和对象类的名称时,应使用有意义的名称,以使模式更易于使用。

通过在自定义元素上包含唯一的前缀,可以避免在自定义模式元素和现有模式元素之间出现命名冲突。例如,Example.com 公司可以在其每个自定义模式元素之前添加前缀 Example。它还可以添加一个名为 ExamplePerson 的特殊对象类,以便在目录中标识 Example.com 员工。

请注意,在 LDAP 中,属性类型名称和对象类名称区分大小写。应用程序应将其视为区分大小写的字符串。

定义新对象类

如果现有对象类不支持需要在目录条目中存储的所有信息,则可以添加新的对象类。

可以使用两种方法创建新对象类:

确定如何实现新对象类时,请考虑以下事项。

定义新属性

如果现有属性不支持需要在目录条目中存储的所有信息,则可以添加新的属性。请尽可能使用标准属性。请搜索默认目录模式中已存在的属性,并使用与新对象类关联的那些属性。

例如,除了 personorganizationalPersoninetOrgPerson 对象类所支持的信息之外,您可能还想在个人条目上存储更多信息。如果要在目录中存储生日,标准目录服务器模式内却不存在任何属性。您可以创建一个名为 dateOfBirth 的新属性。通过定义允许此属性的新辅助类,可以将此属性用于表示人员的条目上。

创建自定义模式文件

创建自定义模式文件时(特别是使用复制时),请注意以下事项: