Extending the Directory Schema
ut of the box, your directory server comes with a standard schema that includes hundreds of object classes and attributes. While the object classes and attributes supplied with the directory server should meet most of your needs, you may find that there are some attributes that you need that are not supported by the standard schema. In this case you will need to extend your schema.
Although it may seem convenient to just add the attributes you need to an existing object class that contains most but not all of the attributes you require, doing so would compromise the compatibility of your directory server with existing LDAP clients that rely on the standard LDAP schema and would cause difficulties when upgrading your server. For this reason, whenever you want to add new attributes to your schema, you must create a new object class to contain them. For the same reasons, you should not delete standard schema elements.
For information on object classes, attributes, and the directory schema as well as guidelines for extending your schema, refer to the Netscape Directory Server Deployment Manual.
This chapter describes:
- Schema Checking
- Using the Schema Configuration Forms
- Extending Your Directory Schema
- Deleting Object Classes and Attributes
Schema Checking
Extensions to the directory schema are necessary only if schema checking is turned on. Schema checking causes the directory server to ensure the object classes and attributes you are using are defined in the directory schema. Schema checking causes the directory server to ensure that the attributes required for an object class are contained in the entry, and that only attributes allowed by the object class are contained in the entry.Turning Schema Checking On and Off
Schema checking is turned on by default in the directory server, and Netscape recommends you run with schema checking turned on. To turn schema checking on and off, go to Server Preferences| LDAP and choose either on or off in the Schema Checking field. You must then click OK to apply your changes. Alternatively, you can turn schema checking on and off by using theSchema Checking parameter in slapd.conf. The Schema Checking parameter is described on page 322.
Using the Schema Configuration Forms
You manage your schema using the following forms:
Using the Create ObjectClass Form
You use the Schema|Create Objectclass form to add a new object class to your directory server. This form contains the following three fields that allow you to identify the new object class:- ObjectClass Name, which requires a unique name for the new object class.
- Parent Object, which identifies the object class structure for the new object class you are creating. You can choose from any existing object class. Or, you can choose No Parent Object to create an object class that can go anywhere in an existing object class structure. Typically, if you want to add new attributes for use with user entries, the parent would be the
inetOrgPersonobject class. If you want to add new attributes for use with corporate entries, the parent is usuallyorganizationororganizationalUnit. If you want to add new attributes for use with group entries, the parent is usuallygroupOfNamesorgroupOfUniqueNames. - ObjectClass OID, which allows you to specify an object identifier (OID) for the new object class. An OID is simply a string, usually of decimal numbers, that uniquely identifies an object, such as an object class or an attribute, in an object-oriented system. This field is optional. If you do not specify an OID, the directory server automatically uses
<ObjectClass name>-oid. For example, if you create the object classdivisionwithout supplying an OID, the directory server automatically usesdivision-oidas the OID.
- To add an attribute that must be present in entries using the new object class, highlight the attribute in the Available Attributes list and then click the Add button to the left of the Required Attributes box.
- To add an attribute that may be present in entries using the new object class, highlight the attribute in the Available Attributes list and then click the Add button to the left of the Allowed Attributes box.
- To delete an attribute that you previously added, highlight the attribute in the Required Attributes list or the Allowed Attributes list and then click the corresponding Remove button.
- "Using the Edit/View ObjectClasses Form" on page 52
- "Using the Edit ObjectClass Form" on page 54
- "Using the Manage Attributes Form" on page 55
- "Extending Your Directory Schema" on page 56
- "Deleting Object Classes and Attributes" on page 57
Using the Edit/View ObjectClasses Form
You use the Schema|Edit or View ObjectClasses form to view information about all object classes that currently exist in your directory schema. You also use this form to select an object class to edit. You can view information about any object class. However, you can edit only object classes that you previously created; you cannot edit a standard object class. You select an object class to view by highlighting the object class in the ObjectClass list. When you highlight the object class entry, the following information is displayed about the object class:- ObjectClass OID, which is the object identifier for the object class.
- Parent, which identifies the object class to that must precede this object class in the object class structure. For example, if you highlight the
inetOrgPersonobject class, theorganizationalPersonis the parent object. That is because in the object class structure that represents people,organizationalPersonprecedesinetOrgPerson. Similarly, if you added a new object class to contain attributes for use with your user entries, the parent should be theinetOrgPersonobject class because it is the bottom of the standard people object class structure. - Required Attributes, which identifies the attributes that must be present in entries using the highlighted object class.
- Allowed Attributes, which identifies the attributes that may be present in entries using the highlighted object class.
- The Edit ObjectClass button calls the Edit ObjectClass form, which allows you to edit the highlighted object class definition.
- The Delete ObjectClass button deletes the highlighted object class.
- "Using the Create ObjectClass Form" on page 51
- "Using the Edit ObjectClass Form" on page 54
- "Using the Manage Attributes Form" on page 55
- "Extending Your Directory Schema" on page 56
- "Deleting Object Classes and Attributes" on page 57
Using the Edit ObjectClass Form
You access the Edit ObjectClass form by highlighting an object class entry on the Schema|Edit/View ObjectClasses form and then clicking the Edit ObjectClass button. You can edit the following fields:- ObjectClass Name, which the name of the ObjectClass.
- Parent Object, which identifies the object class that must precede the selected object class. For example, if you created a new object class called
AiriusPersonto contain attributes for use with your user entries, the parent object should be theinetOrgPersonentry according to the standard object class structure that represents people. - ObjectClass OID, which specifies the object identifier (OID) for the new ObjectClass. This field is optional. If you do not specify an OID, the directory server automatically uses
<ObjectClass name>-oid.
- To add an attribute that must be present in entries using the object class, highlight the attribute in the Available Attributes list and then click the Add button to the left of the Required Attributes box.
- To add an attribute that may be present in entries using the object class, highlight the attribute in the Available Attributes list and then click the Add button to the left of the Allowed Attributes box.
- To delete an attribute that you previously added, highlight the attribute in the Required Attributes list or the Allowed Attributes list and then click the corresponding Remove button.
- "Using the Create ObjectClass Form" on page 51
- "Using the Edit/View ObjectClasses Form" on page 52
- "Using the Manage Attributes Form" on page 55
- "Extending Your Directory Schema" on page 56
- "Deleting Object Classes and Attributes" on page 57
Using the Manage Attributes Form
You use the Schema|Edit or View Attributes form to view information about existing attributes, create new attributes, or delete attributes you previously created. This form has three distinct areas:- The new attribute area provides fields that allow you to define a new attribute.
- The Attribute Name field requires a unique string identifying the attribute.
- The Attribute OID field is an optional field that you can use to supply an object identifier (OID) for the new attribute. If you do not supply an OID, the directory server automatically uses
<attribute name>-oid. For example, if you create a new attribute calledbirthdate, the default OID isbirthdate-oid. - The Syntax field requires that you select a syntax that describes the data to be held by the attribute. Available syntaxes are Case Ignore String, Binary, Case Exact String, Telephone, Distinguished Name, and Integer. For a description of each syntax, see Appendix B, "Attributes."
- The User-Defined Attributes area lists all user-defined attributes along with their OIDs and corresponding attribute syntax. In addition, all user-defined attributes have a delete link in the Options column. You can delete an attribute you previously created by clicking on the delete link. You cannot delete any of the standard schema elements.
- The Standard Attributes area lists all standard attributes along with their OIDs and corresponding attribute syntax. This allows you to see an alphabetical listing of all available attributes so that you can determine whether or not you need to create a new attribute.
-
You cannot edit attribute definitions using the Manage Attributes form. To edit
an attribute definition (for example to change the OID or syntax definition),
you must delete the attribute and then recreate the attribute.
- "Using the Create ObjectClass Form" on page 51
- "Using the Edit/View ObjectClasses Form" on page 52
- "Using the Edit ObjectClass Form" on page 54
- "Extending Your Directory Schema" on page 56
- "Deleting Object Classes and Attributes" on page 57
Extending Your Directory Schema
To extend the directory schema:- Fill out the Attribute Name and Syntax fields and optionally the Attribute OID field.
- Click the Add New Attribute button.
- Repeat these steps for each new attribute you want to create.
- Fill out the ObjectClass Name and Parent Objectclass fields and optionally the ObjectClass OID fields.
- Add attributes to the Required Attributes and Allowed Attributes lists.
- Click the Create New ObjectClass button.
- "Using the Create ObjectClass Form" on page 51
- "Using the Manage Attributes Form" on page 55
- "Deleting Object Classes and Attributes" on page 57
Deleting Object Classes and Attributes
You can delete object classes and attributes you previously created as follows:- Highlight the object class you want to delete in the ObjectClasses list.
- Click the Delete ObjectClass button.