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

透過 LDAP 管理物件類別

本節說明如何透過 LDAP 建立、檢視及刪除物件類別。

建立物件類別

cn=schema 項目具有多值屬性 objectClasses,此屬性含有目錄模式中各種物件類別的定義。您可以使用 ldapmodify(1) 指令增加至這些定義。

新的物件類別定義,以及您對使用者定義的物件類別所做的變更,都會儲存在 99user.ldif 檔案中。

若要建立數個繼承自其他物件類別的物件類別,您必須先建立父系物件類別。若您的新物件類別使用自訂屬性,則也必須先定義這些屬性。

對於每個物件類別定義,必須至少提供一個 OID。請考慮對新的物件類別至少使用下列元素:

Procedure建立物件類別

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 根據 RFC 4517 中所指定的語法,備妥您的物件類別定義。

  2. 使用 ldapmodify(1) 指令,增加您的物件類別定義。

    請注意,目錄伺服器會將 X-ORIGIN 'user defined' 增加到您所提供的定義中。


範例 11–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 線上說明。

    使用 ldapsearch 指令,檢視目前位於您目錄模式中的所有物件類別定義。


範例 11–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 欄位中具有「使用者定義」 值的模式元素。伺服器將不會刪除其他定義。

您對使用者定義的元素所做的變更,會儲存在 99user.ldif 檔案中。

Procedure刪除物件類別

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 檢視要刪除之物件類別的定義。

    如需詳細資訊,請參閱檢視物件類別

  2. 使用 ldapmodify(1) 指令,刪除模式中所出現的物件類別定義。


範例 11–6 刪除物件類別

下列指令將刪除範例 11–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' 這項由目錄伺服器增加,而用以將此模式定義歸類為延伸的屬性。